38 & varname, array, arraysize, history, range, &
39 & time, quiet, difftime, timed, time_average_store, err )
64 character(*),
intent(in):: varname
65 integer,
intent(in):: arraysize
66 real,
intent(in):: array(arraysize)
67 type(
gt_history),
intent(inout),
target,
optional:: history
68 character(*),
intent(in),
optional:: range
84 real,
intent(in),
optional:: time
106 logical,
intent(in),
optional:: quiet
123 real(
dp),
intent(in),
optional:: timed
129 logical,
intent(in),
optional:: time_average_store
146 logical,
intent(out),
optional:: err
161 character(STRING):: url, file, time_str
162 real:: time_value(1:1)
165 character(STRING):: avr_msg
166 real,
target:: array_work(arraysize)
167 real,
pointer:: array_work2(:) =>null()
168 integer:: arraysize_work2
169 integer,
allocatable:: start(:), count(:), stride(:)
172 character(STRING):: time_name
173 character(*),
parameter:: bnds_suffix =
'_bnds'
175 integer:: bnds_ord, time_count, bnds_rank
176 logical:: output_step
181 character(STRING):: cause_c
183 subroutine timegoahead( varname, var, head, history, err )
186 character(len = *),
intent(in):: varname
188 real,
intent(in):: head
189 type(
gt_history),
intent(inout),
optional,
target:: history
190 logical,
intent(out),
optional:: err
193 character(*),
parameter:: subname =
"HistoryPutRealEx"
195 call beginsub(subname,
'varname=%a range=%a', &
199 if (
present(history))
then
208 if ( .not. hst % initialized )
then
210 cause_c =
'GT_HISTORY'
217 if ( (
present(time) .or.
present(difftime) .or.
present(timed) ) &
220 &
'(varname=%c) "range" and "time" or "timed" or "difftime" are not suppored at the same time', &
221 & c1 = trim(varname) )
223 cause_c =
'"range" and "time" or "timed" or "difftime" are not suppored at the same time'
236 if (
present(difftime) )
then
237 timedw =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
238 elseif (
present(timed) )
then
240 elseif (
present(time) )
then
243 if ( v_ord > 0 )
then
250 if ( hst % var_avr_count( v_ord ) > -1 )
then
255 if ( .not.
present(time) &
256 & .and. .not.
present(timed) &
257 & .and. .not.
present(difftime) )
then
259 &
'(varname=%c) arguments "time" or "timed" or "difftime" are needed ' // &
260 &
'when "time_average=.true." is specified to "HistoryAddVariable"', &
261 & c1 = trim(varname) )
273 if ( arraysize /= hst % var_avr_data( v_ord ) % length )
then
275 &
'(varname=%c) size of array should be (%d). size of array is (%d)', &
276 & i = (/hst % var_avr_data( v_ord ) % length, arraysize/), &
277 & c1 = trim(varname) )
293 if ( hst % var_avr_firstput( v_ord ) )
then
294 if ( hst % var_avr_count( v_ord ) == 0 )
then
296 hst % var_avr_prevtime( v_ord ) = timedw
298 hst % var_avr_baseint( v_ord ) = &
299 & timedw - hst % var_avr_prevtime( v_ord )
301 hst % var_avr_prevtime( v_ord ) = timedw
302 hst % var_avr_firstput( v_ord ) = .false.
312 if ( hst % var_avr_count( v_ord ) == 0 )
then
313 hst % var_avr_baseint( v_ord ) = &
314 & timedw - hst % var_avr_prevtime( v_ord )
316 hst % var_avr_prevtime( v_ord ) = timedw
323 avr_coef = ( timedw - hst % var_avr_prevtime( v_ord ) ) &
324 & / hst % var_avr_baseint( v_ord )
325 hst % var_avr_prevtime( v_ord ) = timedw
331 hst % var_avr_data( v_ord ) % a_DataAvr = &
332 & hst % var_avr_data( v_ord ) % a_DataAvr + array * avr_coef
337 hst % var_avr_count( v_ord ) = &
338 & hst % var_avr_count( v_ord ) + 1
339 hst % var_avr_coefsum( v_ord ) = &
340 & hst % var_avr_coefsum( v_ord ) + avr_coef
344 if (
present(difftime) )
then
345 hst % time_bnds(2:2) =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
346 elseif (
present (timed) )
then
347 hst % time_bnds(2:2) = timed
349 hst % time_bnds(2:2) = time
357 if ( .not. hst % origin_setting )
then
358 if (
present(difftime) )
then
359 hst % origin =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
360 hst % time_bnds =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
361 hst % origin_setting = .true.
362 elseif (
present(timed) )
then
364 hst % time_bnds = timed
365 hst % origin_setting = .true.
366 elseif (
present(time) )
then
368 hst % time_bnds = time
369 hst % origin_setting = .true.
395 output_step = .false.
396 elseif (
present(difftime) .or.
present(timed) .or.
present(time) )
then
397 output_step = .false.
398 if ( abs( hst % interval ) <
dp_eps )
then
401 if ( abs(
mod( timedw - hst % origin, hst % interval ) ) <
dp_eps )
then
409 if ( .not. output_step )
then
414 if ( v_ord > 0 )
then
415 if ( hst % var_avr_count( v_ord ) > -1 )
then
417 avr_msg =
'(time average of ' // trim(
tochar(hst % var_avr_count( v_ord )) ) //
' step data)'
426 & ( hst % var_avr_data( v_ord ) % a_DataAvr ) / ( hst % var_avr_coefsum( v_ord ) ), &
427 & kind = kind(array_work) )
430 hst % var_avr_data( v_ord ) % a_DataAvr = 0.0
431 hst % var_avr_count( v_ord ) = 0
432 hst % var_avr_coefsum( v_ord ) = 0.0_dp
433 hst % var_avr_firstput( v_ord ) = .false.
437 array_work2 => array_work
438 arraysize_work2 = arraysize
444 & varname = varname, &
445 & head = real(array_work2(1)), &
447 & history = history, &
452 call dbgmessage(
'varname=<%c> has no dimension. so range is ignoread.', &
457 call put(var, array_work2, arraysize_work2)
462 allocate(start(dims), count(dims), stride(dims))
464 call get_slice(var, i, start(i), count(i), stride(i))
467 call slice(var, range, slice_err)
468 call put(var, array_work2, arraysize_work2)
471 call slice(var, i, start(i), count(i), stride(i))
473 deallocate(start, count, stride)
476 if ( hst % mpi_gather .and. v_ord > 0 )
then
477 deallocate( array_work2 )
483 if ( v_ord > 0 )
then
484 if ( hst % var_avr_count( v_ord ) > -1 )
then
488 timevar = hst % dimvars( hst % unlimited_index )
498 call open( var = bndsvar, &
499 & url =
urlmerge(file=file, var=trim(time_name) // bnds_suffix) )
508 if ( bnds_rank > 1 )
then
511 & dimord = hst % growable_indices(bnds_ord), &
512 & allcount = time_count )
514 if ( (hst % time_bnds_output_count < 1) &
515 & .or. (hst % time_bnds_output_count < time_count) )
then
516 call slice(bndsvar, hst % growable_indices(bnds_ord), &
517 & start=hst % time_bnds_output_count+1, count=1)
518 call put(bndsvar, hst % time_bnds, 2)
519 hst % time_bnds_output_count = hst % time_bnds_output_count + 1
521 call close( var = bndsvar )
522 if (
present(difftime) )
then
523 hst % time_bnds(1:1) = &
524 &
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
525 elseif (
present(timed) )
then
526 hst % time_bnds(1:1) = timed
528 hst % time_bnds(1:1) = time
537 call inquire( hst % dimvars(1), &
541 if ( hst % unlimited_index < 1 )
then
544 timevar = hst % dimvars(hst % unlimited_index)
545 call slice( timevar, &
546 & 1, start = hst % count(v_ord), count = 1 )
551 time_str =
'(time=' // trim(
tochar( time_value(1) )) //
')'
554 &
'"%a" => "%a" %a %a', &
555 & ca =
stoa( varname, file, time_str, avr_msg ) )
562 call storeerror( stat, subname, err, cause_c )
566 & varname, array, arraysize, history, range, &
567 & time, quiet, difftime, timed, time_average_store, err )
592 character(*),
intent(in):: varname
593 integer,
intent(in):: arraysize
594 real(
dp),
intent(in):: array(arraysize)
595 type(
gt_history),
intent(inout),
target,
optional:: history
596 character(*),
intent(in),
optional:: range
612 real,
intent(in),
optional:: time
634 logical,
intent(in),
optional:: quiet
651 real(
dp),
intent(in),
optional:: timed
657 logical,
intent(in),
optional:: time_average_store
674 logical,
intent(out),
optional:: err
689 character(STRING):: url, file, time_str
690 real:: time_value(1:1)
693 character(STRING):: avr_msg
694 real(
dp),
target:: array_work(arraysize)
695 real(
dp),
pointer:: array_work2(:) =>null()
696 integer:: arraysize_work2
697 integer,
allocatable:: start(:), count(:), stride(:)
700 character(STRING):: time_name
701 character(*),
parameter:: bnds_suffix =
'_bnds'
703 integer:: bnds_ord, time_count, bnds_rank
704 logical:: output_step
709 character(STRING):: cause_c
711 subroutine timegoahead( varname, var, head, history, err )
714 character(len = *),
intent(in):: varname
716 real,
intent(in):: head
717 type(
gt_history),
intent(inout),
optional,
target:: history
718 logical,
intent(out),
optional:: err
721 character(*),
parameter:: subname =
"HistoryPutDoubleEx"
723 call beginsub(subname,
'varname=%a range=%a', &
727 if (
present(history))
then
736 if ( .not. hst % initialized )
then
738 cause_c =
'GT_HISTORY'
745 if ( (
present(time) .or.
present(difftime) .or.
present(timed) ) &
748 &
'(varname=%c) "range" and "time" or "timed" or "difftime" are not suppored at the same time', &
749 & c1 = trim(varname) )
751 cause_c =
'"range" and "time" or "timed" or "difftime" are not suppored at the same time'
764 if (
present(difftime) )
then
765 timedw =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
766 elseif (
present(timed) )
then
768 elseif (
present(time) )
then
771 if ( v_ord > 0 )
then
778 if ( hst % var_avr_count( v_ord ) > -1 )
then
783 if ( .not.
present(time) &
784 & .and. .not.
present(timed) &
785 & .and. .not.
present(difftime) )
then
787 &
'(varname=%c) arguments "time" or "timed" or "difftime" are needed ' // &
788 &
'when "time_average=.true." is specified to "HistoryAddVariable"', &
789 & c1 = trim(varname) )
801 if ( arraysize /= hst % var_avr_data( v_ord ) % length )
then
803 &
'(varname=%c) size of array should be (%d). size of array is (%d)', &
804 & i = (/hst % var_avr_data( v_ord ) % length, arraysize/), &
805 & c1 = trim(varname) )
821 if ( hst % var_avr_firstput( v_ord ) )
then
822 if ( hst % var_avr_count( v_ord ) == 0 )
then
824 hst % var_avr_prevtime( v_ord ) = timedw
826 hst % var_avr_baseint( v_ord ) = &
827 & timedw - hst % var_avr_prevtime( v_ord )
829 hst % var_avr_prevtime( v_ord ) = timedw
830 hst % var_avr_firstput( v_ord ) = .false.
840 if ( hst % var_avr_count( v_ord ) == 0 )
then
841 hst % var_avr_baseint( v_ord ) = &
842 & timedw - hst % var_avr_prevtime( v_ord )
844 hst % var_avr_prevtime( v_ord ) = timedw
851 avr_coef = ( timedw - hst % var_avr_prevtime( v_ord ) ) &
852 & / hst % var_avr_baseint( v_ord )
853 hst % var_avr_prevtime( v_ord ) = timedw
859 hst % var_avr_data( v_ord ) % a_DataAvr = &
860 & hst % var_avr_data( v_ord ) % a_DataAvr + array * avr_coef
865 hst % var_avr_count( v_ord ) = &
866 & hst % var_avr_count( v_ord ) + 1
867 hst % var_avr_coefsum( v_ord ) = &
868 & hst % var_avr_coefsum( v_ord ) + avr_coef
872 if (
present(difftime) )
then
873 hst % time_bnds(2:2) =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
874 elseif (
present (timed) )
then
875 hst % time_bnds(2:2) = timed
877 hst % time_bnds(2:2) = time
885 if ( .not. hst % origin_setting )
then
886 if (
present(difftime) )
then
887 hst % origin =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
888 hst % time_bnds =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
889 hst % origin_setting = .true.
890 elseif (
present(timed) )
then
892 hst % time_bnds = timed
893 hst % origin_setting = .true.
894 elseif (
present(time) )
then
896 hst % time_bnds = time
897 hst % origin_setting = .true.
923 output_step = .false.
924 elseif (
present(difftime) .or.
present(timed) .or.
present(time) )
then
925 output_step = .false.
926 if ( abs( hst % interval ) <
dp_eps )
then
929 if ( abs(
mod( timedw - hst % origin, hst % interval ) ) <
dp_eps )
then
937 if ( .not. output_step )
then
942 if ( v_ord > 0 )
then
943 if ( hst % var_avr_count( v_ord ) > -1 )
then
945 avr_msg =
'(time average of ' // trim(
tochar(hst % var_avr_count( v_ord )) ) //
' step data)'
954 & ( hst % var_avr_data( v_ord ) % a_DataAvr ) / ( hst % var_avr_coefsum( v_ord ) ), &
955 & kind = kind(array_work) )
958 hst % var_avr_data( v_ord ) % a_DataAvr = 0.0
959 hst % var_avr_count( v_ord ) = 0
960 hst % var_avr_coefsum( v_ord ) = 0.0_dp
961 hst % var_avr_firstput( v_ord ) = .false.
965 array_work2 => array_work
966 arraysize_work2 = arraysize
972 & varname = varname, &
973 & head = real(array_work2(1)), &
975 & history = history, &
980 call dbgmessage(
'varname=<%c> has no dimension. so range is ignoread.', &
985 call put(var, array_work2, arraysize_work2)
990 allocate(start(dims), count(dims), stride(dims))
992 call get_slice(var, i, start(i), count(i), stride(i))
995 call slice(var, range, slice_err)
996 call put(var, array_work2, arraysize_work2)
999 call slice(var, i, start(i), count(i), stride(i))
1001 deallocate(start, count, stride)
1004 if ( hst % mpi_gather .and. v_ord > 0 )
then
1005 deallocate( array_work2 )
1011 if ( v_ord > 0 )
then
1012 if ( hst % var_avr_count( v_ord ) > -1 )
then
1016 timevar = hst % dimvars( hst % unlimited_index )
1020 & name = time_name )
1026 call open( var = bndsvar, &
1027 & url =
urlmerge(file=file, var=trim(time_name) // bnds_suffix) )
1034 & rank = bnds_rank )
1036 if ( bnds_rank > 1 )
then
1039 & dimord = hst % growable_indices(bnds_ord), &
1040 & allcount = time_count )
1042 if ( (hst % time_bnds_output_count < 1) &
1043 & .or. (hst % time_bnds_output_count < time_count) )
then
1044 call slice(bndsvar, hst % growable_indices(bnds_ord), &
1045 & start=hst % time_bnds_output_count+1, count=1)
1046 call put(bndsvar, hst % time_bnds, 2)
1047 hst % time_bnds_output_count = hst % time_bnds_output_count + 1
1049 call close( var = bndsvar )
1050 if (
present(difftime) )
then
1051 hst % time_bnds(1:1) = &
1052 &
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1053 elseif (
present(timed) )
then
1054 hst % time_bnds(1:1) = timed
1056 hst % time_bnds(1:1) = time
1065 call inquire( hst % dimvars(1), &
1069 if ( hst % unlimited_index < 1 )
then
1072 timevar = hst % dimvars(hst % unlimited_index)
1073 call slice( timevar, &
1074 & 1, start = hst % count(v_ord), count = 1 )
1075 call get( timevar, &
1079 time_str =
'(time=' // trim(
tochar( time_value(1) )) //
')'
1082 &
'"%a" => "%a" %a %a', &
1083 & ca =
stoa( varname, file, time_str, avr_msg ) )
1090 call storeerror( stat, subname, err, cause_c )
1094 & varname, array, arraysize, history, range, &
1095 & time, quiet, difftime, timed, time_average_store, err )
1120 character(*),
intent(in):: varname
1121 integer,
intent(in):: arraysize
1122 integer,
intent(in):: array(arraysize)
1123 type(
gt_history),
intent(inout),
target,
optional:: history
1124 character(*),
intent(in),
optional:: range
1140 real,
intent(in),
optional:: time
1162 logical,
intent(in),
optional:: quiet
1173 type(
dc_difftime),
intent(in),
optional:: difftime
1179 real(
dp),
intent(in),
optional:: timed
1185 logical,
intent(in),
optional:: time_average_store
1202 logical,
intent(out),
optional:: err
1217 character(STRING):: url, file, time_str
1218 real:: time_value(1:1)
1221 character(STRING):: avr_msg
1222 integer,
target:: array_work(arraysize)
1223 integer,
pointer:: array_work2(:) =>null()
1224 integer:: arraysize_work2
1225 integer,
allocatable:: start(:), count(:), stride(:)
1227 logical :: slice_err
1228 character(STRING):: time_name
1229 character(*),
parameter:: bnds_suffix =
'_bnds'
1231 integer:: bnds_ord, time_count, bnds_rank
1232 logical:: output_step
1237 character(STRING):: cause_c
1239 subroutine timegoahead( varname, var, head, history, err )
1242 character(len = *),
intent(in):: varname
1244 real,
intent(in):: head
1245 type(
gt_history),
intent(inout),
optional,
target:: history
1246 logical,
intent(out),
optional:: err
1249 character(*),
parameter:: subname =
"HistoryPutIntEx"
1251 call beginsub(subname,
'varname=%a range=%a', &
1255 if (
present(history))
then
1264 if ( .not. hst % initialized )
then
1266 cause_c =
'GT_HISTORY'
1273 if ( (
present(time) .or.
present(difftime) .or.
present(timed) ) &
1276 &
'(varname=%c) "range" and "time" or "timed" or "difftime" are not suppored at the same time', &
1277 & c1 = trim(varname) )
1279 cause_c =
'"range" and "time" or "timed" or "difftime" are not suppored at the same time'
1292 if (
present(difftime) )
then
1293 timedw =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1294 elseif (
present(timed) )
then
1296 elseif (
present(time) )
then
1299 if ( v_ord > 0 )
then
1306 if ( hst % var_avr_count( v_ord ) > -1 )
then
1311 if ( .not.
present(time) &
1312 & .and. .not.
present(timed) &
1313 & .and. .not.
present(difftime) )
then
1315 &
'(varname=%c) arguments "time" or "timed" or "difftime" are needed ' // &
1316 &
'when "time_average=.true." is specified to "HistoryAddVariable"', &
1317 & c1 = trim(varname) )
1329 if ( arraysize /= hst % var_avr_data( v_ord ) % length )
then
1331 &
'(varname=%c) size of array should be (%d). size of array is (%d)', &
1332 & i = (/hst % var_avr_data( v_ord ) % length, arraysize/), &
1333 & c1 = trim(varname) )
1349 if ( hst % var_avr_firstput( v_ord ) )
then
1350 if ( hst % var_avr_count( v_ord ) == 0 )
then
1352 hst % var_avr_prevtime( v_ord ) = timedw
1354 hst % var_avr_baseint( v_ord ) = &
1355 & timedw - hst % var_avr_prevtime( v_ord )
1357 hst % var_avr_prevtime( v_ord ) = timedw
1358 hst % var_avr_firstput( v_ord ) = .false.
1368 if ( hst % var_avr_count( v_ord ) == 0 )
then
1369 hst % var_avr_baseint( v_ord ) = &
1370 & timedw - hst % var_avr_prevtime( v_ord )
1372 hst % var_avr_prevtime( v_ord ) = timedw
1379 avr_coef = ( timedw - hst % var_avr_prevtime( v_ord ) ) &
1380 & / hst % var_avr_baseint( v_ord )
1381 hst % var_avr_prevtime( v_ord ) = timedw
1387 hst % var_avr_data( v_ord ) % a_DataAvr = &
1388 & hst % var_avr_data( v_ord ) % a_DataAvr + array * avr_coef
1393 hst % var_avr_count( v_ord ) = &
1394 & hst % var_avr_count( v_ord ) + 1
1395 hst % var_avr_coefsum( v_ord ) = &
1396 & hst % var_avr_coefsum( v_ord ) + avr_coef
1400 if (
present(difftime) )
then
1401 hst % time_bnds(2:2) =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1402 elseif (
present (timed) )
then
1403 hst % time_bnds(2:2) = timed
1405 hst % time_bnds(2:2) = time
1413 if ( .not. hst % origin_setting )
then
1414 if (
present(difftime) )
then
1415 hst % origin =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1416 hst % time_bnds =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1417 hst % origin_setting = .true.
1418 elseif (
present(timed) )
then
1419 hst % origin = timed
1420 hst % time_bnds = timed
1421 hst % origin_setting = .true.
1422 elseif (
present(time) )
then
1424 hst % time_bnds = time
1425 hst % origin_setting = .true.
1447 output_step = .true.
1449 output_step = .true.
1451 output_step = .false.
1452 elseif (
present(difftime) .or.
present(timed) .or.
present(time) )
then
1453 output_step = .false.
1454 if ( abs( hst % interval ) <
dp_eps )
then
1455 output_step = .true.
1457 if ( abs(
mod( timedw - hst % origin, hst % interval ) ) <
dp_eps )
then
1458 output_step = .true.
1465 if ( .not. output_step )
then
1470 if ( v_ord > 0 )
then
1471 if ( hst % var_avr_count( v_ord ) > -1 )
then
1473 avr_msg =
'(time average of ' // trim(
tochar(hst % var_avr_count( v_ord )) ) //
' step data)'
1482 & ( hst % var_avr_data( v_ord ) % a_DataAvr ) / ( hst % var_avr_coefsum( v_ord ) ), &
1483 & kind = kind(array_work) )
1486 hst % var_avr_data( v_ord ) % a_DataAvr = 0.0
1487 hst % var_avr_count( v_ord ) = 0
1488 hst % var_avr_coefsum( v_ord ) = 0.0_dp
1489 hst % var_avr_firstput( v_ord ) = .false.
1493 array_work2 => array_work
1494 arraysize_work2 = arraysize
1500 & varname = varname, &
1501 & head = real(array_work2(1)), &
1503 & history = history, &
1508 call dbgmessage(
'varname=<%c> has no dimension. so range is ignoread.', &
1513 call put(var, array_work2, arraysize_work2)
1518 allocate(start(dims), count(dims), stride(dims))
1520 call get_slice(var, i, start(i), count(i), stride(i))
1523 call slice(var, range, slice_err)
1524 call put(var, array_work2, arraysize_work2)
1527 call slice(var, i, start(i), count(i), stride(i))
1529 deallocate(start, count, stride)
1532 if ( hst % mpi_gather .and. v_ord > 0 )
then
1533 deallocate( array_work2 )
1539 if ( v_ord > 0 )
then
1540 if ( hst % var_avr_count( v_ord ) > -1 )
then
1544 timevar = hst % dimvars( hst % unlimited_index )
1548 & name = time_name )
1554 call open( var = bndsvar, &
1555 & url =
urlmerge(file=file, var=trim(time_name) // bnds_suffix) )
1562 & rank = bnds_rank )
1564 if ( bnds_rank > 1 )
then
1567 & dimord = hst % growable_indices(bnds_ord), &
1568 & allcount = time_count )
1570 if ( (hst % time_bnds_output_count < 1) &
1571 & .or. (hst % time_bnds_output_count < time_count) )
then
1572 call slice(bndsvar, hst % growable_indices(bnds_ord), &
1573 & start=hst % time_bnds_output_count+1, count=1)
1574 call put(bndsvar, hst % time_bnds, 2)
1575 hst % time_bnds_output_count = hst % time_bnds_output_count + 1
1577 call close( var = bndsvar )
1578 if (
present(difftime) )
then
1579 hst % time_bnds(1:1) = &
1580 &
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1581 elseif (
present(timed) )
then
1582 hst % time_bnds(1:1) = timed
1584 hst % time_bnds(1:1) = time
1593 call inquire( hst % dimvars(1), &
1597 if ( hst % unlimited_index < 1 )
then
1600 timevar = hst % dimvars(hst % unlimited_index)
1601 call slice( timevar, &
1602 & 1, start = hst % count(v_ord), count = 1 )
1603 call get( timevar, &
1607 time_str =
'(time=' // trim(
tochar( time_value(1) )) //
')'
1610 &
'"%a" => "%a" %a %a', &
1611 & ca =
stoa( varname, file, time_str, avr_msg ) )
1618 call storeerror( stat, subname, err, cause_c )
1622 & varname, array, arraysize, history, range, &
1623 & time, quiet, difftime, timed, time_average_store, err )
1648 character(*),
intent(in):: varname
1649 integer,
intent(in):: arraysize
1650 character(*),
intent(in):: array(arraysize)
1651 type(
gt_history),
intent(inout),
target,
optional:: history
1652 character(*),
intent(in),
optional:: range
1668 real,
intent(in),
optional:: time
1690 logical,
intent(in),
optional:: quiet
1701 type(
dc_difftime),
intent(in),
optional:: difftime
1707 real(
dp),
intent(in),
optional:: timed
1713 logical,
intent(in),
optional:: time_average_store
1730 logical,
intent(out),
optional:: err
1745 character(STRING):: url, file, time_str
1746 real:: time_value(1:1)
1749 character(STRING):: avr_msg
1751 character(STRING):: cause_c
1753 subroutine timegoahead( varname, var, head, history, err )
1756 character(len = *),
intent(in):: varname
1758 real,
intent(in):: head
1759 type(
gt_history),
intent(inout),
optional,
target:: history
1760 logical,
intent(out),
optional:: err
1763 character(*),
parameter:: subname =
"HistoryPutCharEx"
1765 call beginsub(subname,
'varname=%a range=%a', &
1769 if (
present(history))
then
1778 if ( .not. hst % initialized )
then
1780 cause_c =
'GT_HISTORY'
1787 if ( (
present(time) .or.
present(difftime) .or.
present(timed) ) &
1790 &
'(varname=%c) "range" and "time" or "timed" or "difftime" are not suppored at the same time', &
1791 & c1 = trim(varname) )
1793 cause_c =
'"range" and "time" or "timed" or "difftime" are not suppored at the same time'
1801 if (
present(time_average_store) )
then
1808 if ( .not. hst % origin_setting )
then
1809 if (
present(difftime) )
then
1810 hst % origin =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1811 hst % time_bnds =
evalbyunit( difftime,
'', hst % unlimited_units_symbol )
1812 hst % origin_setting = .true.
1813 elseif (
present(timed) )
then
1814 hst % origin = timed
1815 hst % time_bnds = timed
1816 hst % origin_setting = .true.
1817 elseif (
present(time) )
then
1819 hst % time_bnds = time
1820 hst % origin_setting = .true.
1844 & varname = varname, &
1847 & history = history, &
1850 call dbgmessage(
'varname=<%c> is string. so range is ignoread.', &
1853 call put(var, array, arraysize)
1860 call inquire( hst % dimvars(1), &
1864 if ( hst % unlimited_index < 1 )
then
1867 timevar = hst % dimvars(hst % unlimited_index)
1868 call slice( timevar, &
1869 & 1, start = hst % count(v_ord), count = 1 )
1870 call get( timevar, &
1874 time_str =
'(time=' // trim(
tochar( time_value(1) )) //
')'
1877 &
'"%a" => "%a" %a %a', &
1878 & ca =
stoa( varname, file, time_str, avr_msg ) )
1885 call storeerror( stat, subname, err, cause_c )
1924 character(*),
intent(in):: varname
1925 real,
intent(in):: array(:)
1926 type(
gt_history),
intent(inout),
optional,
target:: history
1927 logical,
intent(out),
optional:: err
1929 character(STRING):: cause_c
1930 character(*),
parameter:: subname =
"HistoryPutAxisMPIReal"
1932 call beginsub(subname,
'varname=%c', c1 = trim(varname) )
1935 call dbgmessage(
'This library is not built with MPI library')
1941 call storeerror( stat, subname, err, cause_c )
1980 character(*),
intent(in):: varname
1992 real(DP),
intent(in):: array(:)
1996 type(
gt_history),
intent(inout),
optional,
target:: history
2011 logical,
intent(out),
optional:: err
2026 character(STRING):: cause_c
2027 character(*),
parameter:: subname =
"HistoryPutAxisMPIDouble"
2029 call beginsub(subname,
'varname=%c', c1 = trim(varname) )
2032 call dbgmessage(
'This library is not built with MPI library')
2038 call storeerror( stat, subname, err, cause_c )
2077 character(*),
intent(in):: varname
2078 integer,
intent(in):: array(:)
2079 type(
gt_history),
intent(inout),
optional,
target:: history
2080 logical,
intent(out),
optional:: err
2082 character(STRING):: cause_c
2083 character(*),
parameter:: subname =
"HistoryPutAxisMPIInt"
2085 call beginsub(subname,
'varname=%c', c1 = trim(varname) )
2088 call dbgmessage(
'This library is not built with MPI library')
2094 call storeerror( stat, subname, err, cause_c )
2098 & history, range, time, quiet, &
2099 & difftime, timed, time_average_store, err )
2139 character(*),
intent(in):: varname
2149 real(DP),
intent(in):: value
2160 type(
gt_history),
intent(inout),
optional,
target:: history
2168 character(*),
intent(in),
optional:: range
2184 real,
intent(in),
optional:: time
2210 logical,
intent(in),
optional:: quiet
2217 type(
dc_difftime),
intent(in),
optional:: difftime
2222 real(DP),
intent(in),
optional:: timed
2227 logical,
intent(in),
optional:: time_average_store
2244 logical,
intent(out),
optional:: err
2260 & varname, array, arraysize, history, range, &
2261 & time, quiet, difftime, timed, time_average_store, err )
2265 character(*),
intent(in):: varname
2266 integer,
intent(in):: arraysize
2267 real(DP),
intent(in):: array(arraysize)
2268 type(
gt_history),
intent(inout),
target,
optional:: history
2269 character(*),
intent(in),
optional:: range
2270 real,
intent(in),
optional:: time
2271 logical,
intent(in),
optional:: quiet
2272 type(
dc_difftime),
intent(in),
optional:: difftime
2273 real(DP),
intent(in),
optional:: timed
2274 logical,
intent(in),
optional:: time_average_store
2275 logical,
intent(out),
optional:: err
2278 character(*),
parameter:: subname =
"HistoryPutDouble0"
2284 & history = history, &
2288 & difftime = difftime, &
2290 & time_average_store = &
2291 & time_average_store, &
2296 & history, range, time, quiet, &
2297 & difftime, timed, time_average_store, err )
2305 character(*),
intent(in):: varname
2306 real(DP),
intent(in):: array(:)
2307 type(
gt_history),
intent(inout),
optional,
target:: history
2308 character(*),
intent(in),
optional:: range
2309 real,
intent(in),
optional:: time
2310 logical,
intent(in),
optional:: quiet
2311 type(
dc_difftime),
intent(in),
optional:: difftime
2312 real(DP),
intent(in),
optional:: timed
2313 logical,
intent(in),
optional:: time_average_store
2314 logical,
intent(out),
optional:: err
2317 & varname, array, arraysize, history, range, &
2318 & time, quiet, difftime, timed, time_average_store, err )
2322 character(*),
intent(in):: varname
2323 integer,
intent(in):: arraysize
2324 real(DP),
intent(in):: array(arraysize)
2325 type(
gt_history),
intent(inout),
target,
optional:: history
2326 character(*),
intent(in),
optional:: range
2327 real,
intent(in),
optional:: time
2328 logical,
intent(in),
optional:: quiet
2329 type(
dc_difftime),
intent(in),
optional:: difftime
2330 real(DP),
intent(in),
optional:: timed
2331 logical,
intent(in),
optional:: time_average_store
2332 logical,
intent(out),
optional:: err
2335 character(*),
parameter:: subname =
"HistoryPutDouble1"
2340 & pack(array, .true.),
size(array), &
2341 & history = history, &
2345 & difftime = difftime, &
2347 & time_average_store = &
2348 & time_average_store, &
2353 & history, range, time, quiet, &
2354 & difftime, timed, time_average_store, err )
2362 character(*),
intent(in):: varname
2363 real(DP),
intent(in):: array(:,:)
2364 type(
gt_history),
intent(inout),
optional,
target:: history
2365 character(*),
intent(in),
optional:: range
2366 real,
intent(in),
optional:: time
2367 logical,
intent(in),
optional:: quiet
2368 type(
dc_difftime),
intent(in),
optional:: difftime
2369 real(DP),
intent(in),
optional:: timed
2370 logical,
intent(in),
optional:: time_average_store
2371 logical,
intent(out),
optional:: err
2374 & varname, array, arraysize, history, range, &
2375 & time, quiet, difftime, timed, time_average_store, err )
2379 character(*),
intent(in):: varname
2380 integer,
intent(in):: arraysize
2381 real(DP),
intent(in):: array(arraysize)
2382 type(
gt_history),
intent(inout),
target,
optional:: history
2383 character(*),
intent(in),
optional:: range
2384 real,
intent(in),
optional:: time
2385 logical,
intent(in),
optional:: quiet
2386 type(
dc_difftime),
intent(in),
optional:: difftime
2387 real(DP),
intent(in),
optional:: timed
2388 logical,
intent(in),
optional:: time_average_store
2389 logical,
intent(out),
optional:: err
2392 character(*),
parameter:: subname =
"HistoryPutDouble2"
2397 & pack(array, .true.),
size(array), &
2398 & history = history, &
2402 & difftime = difftime, &
2404 & time_average_store = &
2405 & time_average_store, &
2410 & history, range, time, quiet, &
2411 & difftime, timed, time_average_store, err )
2419 character(*),
intent(in):: varname
2420 real(DP),
intent(in):: array(:,:,:)
2421 type(
gt_history),
intent(inout),
optional,
target:: history
2422 character(*),
intent(in),
optional:: range
2423 real,
intent(in),
optional:: time
2424 logical,
intent(in),
optional:: quiet
2425 type(
dc_difftime),
intent(in),
optional:: difftime
2426 real(DP),
intent(in),
optional:: timed
2427 logical,
intent(in),
optional:: time_average_store
2428 logical,
intent(out),
optional:: err
2431 & varname, array, arraysize, history, range, &
2432 & time, quiet, difftime, timed, time_average_store, err )
2436 character(*),
intent(in):: varname
2437 integer,
intent(in):: arraysize
2438 real(DP),
intent(in):: array(arraysize)
2439 type(
gt_history),
intent(inout),
target,
optional:: history
2440 character(*),
intent(in),
optional:: range
2441 real,
intent(in),
optional:: time
2442 logical,
intent(in),
optional:: quiet
2443 type(
dc_difftime),
intent(in),
optional:: difftime
2444 real(DP),
intent(in),
optional:: timed
2445 logical,
intent(in),
optional:: time_average_store
2446 logical,
intent(out),
optional:: err
2449 character(*),
parameter:: subname =
"HistoryPutDouble3"
2454 & pack(array, .true.),
size(array), &
2455 & history = history, &
2459 & difftime = difftime, &
2461 & time_average_store = &
2462 & time_average_store, &
2467 & history, range, time, quiet, &
2468 & difftime, timed, time_average_store, err )
2476 character(*),
intent(in):: varname
2477 real(DP),
intent(in):: array(:,:,:,:)
2478 type(
gt_history),
intent(inout),
optional,
target:: history
2479 character(*),
intent(in),
optional:: range
2480 real,
intent(in),
optional:: time
2481 logical,
intent(in),
optional:: quiet
2482 type(
dc_difftime),
intent(in),
optional:: difftime
2483 real(DP),
intent(in),
optional:: timed
2484 logical,
intent(in),
optional:: time_average_store
2485 logical,
intent(out),
optional:: err
2488 & varname, array, arraysize, history, range, &
2489 & time, quiet, difftime, timed, time_average_store, err )
2493 character(*),
intent(in):: varname
2494 integer,
intent(in):: arraysize
2495 real(DP),
intent(in):: array(arraysize)
2496 type(
gt_history),
intent(inout),
target,
optional:: history
2497 character(*),
intent(in),
optional:: range
2498 real,
intent(in),
optional:: time
2499 logical,
intent(in),
optional:: quiet
2500 type(
dc_difftime),
intent(in),
optional:: difftime
2501 real(DP),
intent(in),
optional:: timed
2502 logical,
intent(in),
optional:: time_average_store
2503 logical,
intent(out),
optional:: err
2506 character(*),
parameter:: subname =
"HistoryPutDouble4"
2511 & pack(array, .true.),
size(array), &
2512 & history = history, &
2516 & difftime = difftime, &
2518 & time_average_store = &
2519 & time_average_store, &
2524 & history, range, time, quiet, &
2525 & difftime, timed, time_average_store, err )
2533 character(*),
intent(in):: varname
2534 real(DP),
intent(in):: array(:,:,:,:,:)
2535 type(
gt_history),
intent(inout),
optional,
target:: history
2536 character(*),
intent(in),
optional:: range
2537 real,
intent(in),
optional:: time
2538 logical,
intent(in),
optional:: quiet
2539 type(
dc_difftime),
intent(in),
optional:: difftime
2540 real(DP),
intent(in),
optional:: timed
2541 logical,
intent(in),
optional:: time_average_store
2542 logical,
intent(out),
optional:: err
2545 & varname, array, arraysize, history, range, &
2546 & time, quiet, difftime, timed, time_average_store, err )
2550 character(*),
intent(in):: varname
2551 integer,
intent(in):: arraysize
2552 real(DP),
intent(in):: array(arraysize)
2553 type(
gt_history),
intent(inout),
target,
optional:: history
2554 character(*),
intent(in),
optional:: range
2555 real,
intent(in),
optional:: time
2556 logical,
intent(in),
optional:: quiet
2557 type(
dc_difftime),
intent(in),
optional:: difftime
2558 real(DP),
intent(in),
optional:: timed
2559 logical,
intent(in),
optional:: time_average_store
2560 logical,
intent(out),
optional:: err
2563 character(*),
parameter:: subname =
"HistoryPutDouble5"
2568 & pack(array, .true.),
size(array), &
2569 & history = history, &
2573 & difftime = difftime, &
2575 & time_average_store = &
2576 & time_average_store, &
2581 & history, range, time, quiet, &
2582 & difftime, timed, time_average_store, err )
2590 character(*),
intent(in):: varname
2591 real(DP),
intent(in):: array(:,:,:,:,:,:)
2592 type(
gt_history),
intent(inout),
optional,
target:: history
2593 character(*),
intent(in),
optional:: range
2594 real,
intent(in),
optional:: time
2595 logical,
intent(in),
optional:: quiet
2596 type(
dc_difftime),
intent(in),
optional:: difftime
2597 real(DP),
intent(in),
optional:: timed
2598 logical,
intent(in),
optional:: time_average_store
2599 logical,
intent(out),
optional:: err
2602 & varname, array, arraysize, history, range, &
2603 & time, quiet, difftime, timed, time_average_store, err )
2607 character(*),
intent(in):: varname
2608 integer,
intent(in):: arraysize
2609 real(DP),
intent(in):: array(arraysize)
2610 type(
gt_history),
intent(inout),
target,
optional:: history
2611 character(*),
intent(in),
optional:: range
2612 real,
intent(in),
optional:: time
2613 logical,
intent(in),
optional:: quiet
2614 type(
dc_difftime),
intent(in),
optional:: difftime
2615 real(DP),
intent(in),
optional:: timed
2616 logical,
intent(in),
optional:: time_average_store
2617 logical,
intent(out),
optional:: err
2620 character(*),
parameter:: subname =
"HistoryPutDouble6"
2625 & pack(array, .true.),
size(array), &
2626 & history = history, &
2630 & difftime = difftime, &
2632 & time_average_store = &
2633 & time_average_store, &
2638 & history, range, time, quiet, &
2639 & difftime, timed, time_average_store, err )
2647 character(*),
intent(in):: varname
2648 real(DP),
intent(in):: array(:,:,:,:,:,:,:)
2649 type(
gt_history),
intent(inout),
optional,
target:: history
2650 character(*),
intent(in),
optional:: range
2651 real,
intent(in),
optional:: time
2652 logical,
intent(in),
optional:: quiet
2653 type(
dc_difftime),
intent(in),
optional:: difftime
2654 real(DP),
intent(in),
optional:: timed
2655 logical,
intent(in),
optional:: time_average_store
2656 logical,
intent(out),
optional:: err
2659 & varname, array, arraysize, history, range, &
2660 & time, quiet, difftime, timed, time_average_store, err )
2664 character(*),
intent(in):: varname
2665 integer,
intent(in):: arraysize
2666 real(DP),
intent(in):: array(arraysize)
2667 type(
gt_history),
intent(inout),
target,
optional:: history
2668 character(*),
intent(in),
optional:: range
2669 real,
intent(in),
optional:: time
2670 logical,
intent(in),
optional:: quiet
2671 type(
dc_difftime),
intent(in),
optional:: difftime
2672 real(DP),
intent(in),
optional:: timed
2673 logical,
intent(in),
optional:: time_average_store
2674 logical,
intent(out),
optional:: err
2677 character(*),
parameter:: subname =
"HistoryPutDouble7"
2682 & pack(array, .true.),
size(array), &
2683 & history = history, &
2687 & difftime = difftime, &
2689 & time_average_store = &
2690 & time_average_store, &
2695 & history, range, time, quiet, &
2696 & difftime, timed, time_average_store, err )
2704 character(*),
intent(in):: varname
2705 real,
intent(in):: value
2706 type(
gt_history),
intent(inout),
optional,
target:: history
2707 character(*),
intent(in),
optional:: range
2708 real,
intent(in),
optional:: time
2709 logical,
intent(in),
optional:: quiet
2710 type(
dc_difftime),
intent(in),
optional:: difftime
2711 real(DP),
intent(in),
optional:: timed
2712 logical,
intent(in),
optional:: time_average_store
2713 logical,
intent(out),
optional:: err
2716 & varname, array, arraysize, history, range, &
2717 & time, quiet, difftime, timed, time_average_store, err )
2721 character(*),
intent(in):: varname
2722 integer,
intent(in):: arraysize
2723 real,
intent(in):: array(arraysize)
2724 type(
gt_history),
intent(inout),
target,
optional:: history
2725 character(*),
intent(in),
optional:: range
2726 real,
intent(in),
optional:: time
2727 logical,
intent(in),
optional:: quiet
2728 type(
dc_difftime),
intent(in),
optional:: difftime
2729 real(DP),
intent(in),
optional:: timed
2730 logical,
intent(in),
optional:: time_average_store
2731 logical,
intent(out),
optional:: err
2734 character(*),
parameter:: subname =
"HistoryPutReal0"
2740 & history = history, &
2744 & difftime = difftime, &
2746 & time_average_store = &
2747 & time_average_store, &
2752 & history, range, time, quiet, &
2753 & difftime, timed, time_average_store, err )
2761 character(*),
intent(in):: varname
2762 real,
intent(in):: array(:)
2763 type(
gt_history),
intent(inout),
optional,
target:: history
2764 character(*),
intent(in),
optional:: range
2765 real,
intent(in),
optional:: time
2766 logical,
intent(in),
optional:: quiet
2767 type(
dc_difftime),
intent(in),
optional:: difftime
2768 real(DP),
intent(in),
optional:: timed
2769 logical,
intent(in),
optional:: time_average_store
2770 logical,
intent(out),
optional:: err
2773 & varname, array, arraysize, history, range, &
2774 & time, quiet, difftime, timed, time_average_store, err )
2778 character(*),
intent(in):: varname
2779 integer,
intent(in):: arraysize
2780 real,
intent(in):: array(arraysize)
2781 type(
gt_history),
intent(inout),
target,
optional:: history
2782 character(*),
intent(in),
optional:: range
2783 real,
intent(in),
optional:: time
2784 logical,
intent(in),
optional:: quiet
2785 type(
dc_difftime),
intent(in),
optional:: difftime
2786 real(DP),
intent(in),
optional:: timed
2787 logical,
intent(in),
optional:: time_average_store
2788 logical,
intent(out),
optional:: err
2791 character(*),
parameter:: subname =
"HistoryPutReal1"
2796 & pack(array, .true.),
size(array), &
2797 & history = history, &
2801 & difftime = difftime, &
2803 & time_average_store = &
2804 & time_average_store, &
2809 & history, range, time, quiet, &
2810 & difftime, timed, time_average_store, err )
2818 character(*),
intent(in):: varname
2819 real,
intent(in):: array(:,:)
2820 type(
gt_history),
intent(inout),
optional,
target:: history
2821 character(*),
intent(in),
optional:: range
2822 real,
intent(in),
optional:: time
2823 logical,
intent(in),
optional:: quiet
2824 type(
dc_difftime),
intent(in),
optional:: difftime
2825 real(DP),
intent(in),
optional:: timed
2826 logical,
intent(in),
optional:: time_average_store
2827 logical,
intent(out),
optional:: err
2830 & varname, array, arraysize, history, range, &
2831 & time, quiet, difftime, timed, time_average_store, err )
2835 character(*),
intent(in):: varname
2836 integer,
intent(in):: arraysize
2837 real,
intent(in):: array(arraysize)
2838 type(
gt_history),
intent(inout),
target,
optional:: history
2839 character(*),
intent(in),
optional:: range
2840 real,
intent(in),
optional:: time
2841 logical,
intent(in),
optional:: quiet
2842 type(
dc_difftime),
intent(in),
optional:: difftime
2843 real(DP),
intent(in),
optional:: timed
2844 logical,
intent(in),
optional:: time_average_store
2845 logical,
intent(out),
optional:: err
2848 character(*),
parameter:: subname =
"HistoryPutReal2"
2853 & pack(array, .true.),
size(array), &
2854 & history = history, &
2858 & difftime = difftime, &
2860 & time_average_store = &
2861 & time_average_store, &
2866 & history, range, time, quiet, &
2867 & difftime, timed, time_average_store, err )
2875 character(*),
intent(in):: varname
2876 real,
intent(in):: array(:,:,:)
2877 type(
gt_history),
intent(inout),
optional,
target:: history
2878 character(*),
intent(in),
optional:: range
2879 real,
intent(in),
optional:: time
2880 logical,
intent(in),
optional:: quiet
2881 type(
dc_difftime),
intent(in),
optional:: difftime
2882 real(DP),
intent(in),
optional:: timed
2883 logical,
intent(in),
optional:: time_average_store
2884 logical,
intent(out),
optional:: err
2887 & varname, array, arraysize, history, range, &
2888 & time, quiet, difftime, timed, time_average_store, err )
2892 character(*),
intent(in):: varname
2893 integer,
intent(in):: arraysize
2894 real,
intent(in):: array(arraysize)
2895 type(
gt_history),
intent(inout),
target,
optional:: history
2896 character(*),
intent(in),
optional:: range
2897 real,
intent(in),
optional:: time
2898 logical,
intent(in),
optional:: quiet
2899 type(
dc_difftime),
intent(in),
optional:: difftime
2900 real(DP),
intent(in),
optional:: timed
2901 logical,
intent(in),
optional:: time_average_store
2902 logical,
intent(out),
optional:: err
2905 character(*),
parameter:: subname =
"HistoryPutReal3"
2910 & pack(array, .true.),
size(array), &
2911 & history = history, &
2915 & difftime = difftime, &
2917 & time_average_store = &
2918 & time_average_store, &
2923 & history, range, time, quiet, &
2924 & difftime, timed, time_average_store, err )
2932 character(*),
intent(in):: varname
2933 real,
intent(in):: array(:,:,:,:)
2934 type(
gt_history),
intent(inout),
optional,
target:: history
2935 character(*),
intent(in),
optional:: range
2936 real,
intent(in),
optional:: time
2937 logical,
intent(in),
optional:: quiet
2938 type(
dc_difftime),
intent(in),
optional:: difftime
2939 real(DP),
intent(in),
optional:: timed
2940 logical,
intent(in),
optional:: time_average_store
2941 logical,
intent(out),
optional:: err
2944 & varname, array, arraysize, history, range, &
2945 & time, quiet, difftime, timed, time_average_store, err )
2949 character(*),
intent(in):: varname
2950 integer,
intent(in):: arraysize
2951 real,
intent(in):: array(arraysize)
2952 type(
gt_history),
intent(inout),
target,
optional:: history
2953 character(*),
intent(in),
optional:: range
2954 real,
intent(in),
optional:: time
2955 logical,
intent(in),
optional:: quiet
2956 type(
dc_difftime),
intent(in),
optional:: difftime
2957 real(DP),
intent(in),
optional:: timed
2958 logical,
intent(in),
optional:: time_average_store
2959 logical,
intent(out),
optional:: err
2962 character(*),
parameter:: subname =
"HistoryPutReal4"
2967 & pack(array, .true.),
size(array), &
2968 & history = history, &
2972 & difftime = difftime, &
2974 & time_average_store = &
2975 & time_average_store, &
2980 & history, range, time, quiet, &
2981 & difftime, timed, time_average_store, err )
2989 character(*),
intent(in):: varname
2990 real,
intent(in):: array(:,:,:,:,:)
2991 type(
gt_history),
intent(inout),
optional,
target:: history
2992 character(*),
intent(in),
optional:: range
2993 real,
intent(in),
optional:: time
2994 logical,
intent(in),
optional:: quiet
2995 type(
dc_difftime),
intent(in),
optional:: difftime
2996 real(DP),
intent(in),
optional:: timed
2997 logical,
intent(in),
optional:: time_average_store
2998 logical,
intent(out),
optional:: err
3001 & varname, array, arraysize, history, range, &
3002 & time, quiet, difftime, timed, time_average_store, err )
3006 character(*),
intent(in):: varname
3007 integer,
intent(in):: arraysize
3008 real,
intent(in):: array(arraysize)
3009 type(
gt_history),
intent(inout),
target,
optional:: history
3010 character(*),
intent(in),
optional:: range
3011 real,
intent(in),
optional:: time
3012 logical,
intent(in),
optional:: quiet
3013 type(
dc_difftime),
intent(in),
optional:: difftime
3014 real(DP),
intent(in),
optional:: timed
3015 logical,
intent(in),
optional:: time_average_store
3016 logical,
intent(out),
optional:: err
3019 character(*),
parameter:: subname =
"HistoryPutReal5"
3024 & pack(array, .true.),
size(array), &
3025 & history = history, &
3029 & difftime = difftime, &
3031 & time_average_store = &
3032 & time_average_store, &
3037 & history, range, time, quiet, &
3038 & difftime, timed, time_average_store, err )
3046 character(*),
intent(in):: varname
3047 real,
intent(in):: array(:,:,:,:,:,:)
3048 type(
gt_history),
intent(inout),
optional,
target:: history
3049 character(*),
intent(in),
optional:: range
3050 real,
intent(in),
optional:: time
3051 logical,
intent(in),
optional:: quiet
3052 type(
dc_difftime),
intent(in),
optional:: difftime
3053 real(DP),
intent(in),
optional:: timed
3054 logical,
intent(in),
optional:: time_average_store
3055 logical,
intent(out),
optional:: err
3058 & varname, array, arraysize, history, range, &
3059 & time, quiet, difftime, timed, time_average_store, err )
3063 character(*),
intent(in):: varname
3064 integer,
intent(in):: arraysize
3065 real,
intent(in):: array(arraysize)
3066 type(
gt_history),
intent(inout),
target,
optional:: history
3067 character(*),
intent(in),
optional:: range
3068 real,
intent(in),
optional:: time
3069 logical,
intent(in),
optional:: quiet
3070 type(
dc_difftime),
intent(in),
optional:: difftime
3071 real(DP),
intent(in),
optional:: timed
3072 logical,
intent(in),
optional:: time_average_store
3073 logical,
intent(out),
optional:: err
3076 character(*),
parameter:: subname =
"HistoryPutReal6"
3081 & pack(array, .true.),
size(array), &
3082 & history = history, &
3086 & difftime = difftime, &
3088 & time_average_store = &
3089 & time_average_store, &
3094 & history, range, time, quiet, &
3095 & difftime, timed, time_average_store, err )
3103 character(*),
intent(in):: varname
3104 real,
intent(in):: array(:,:,:,:,:,:,:)
3105 type(
gt_history),
intent(inout),
optional,
target:: history
3106 character(*),
intent(in),
optional:: range
3107 real,
intent(in),
optional:: time
3108 logical,
intent(in),
optional:: quiet
3109 type(
dc_difftime),
intent(in),
optional:: difftime
3110 real(DP),
intent(in),
optional:: timed
3111 logical,
intent(in),
optional:: time_average_store
3112 logical,
intent(out),
optional:: err
3115 & varname, array, arraysize, history, range, &
3116 & time, quiet, difftime, timed, time_average_store, err )
3120 character(*),
intent(in):: varname
3121 integer,
intent(in):: arraysize
3122 real,
intent(in):: array(arraysize)
3123 type(
gt_history),
intent(inout),
target,
optional:: history
3124 character(*),
intent(in),
optional:: range
3125 real,
intent(in),
optional:: time
3126 logical,
intent(in),
optional:: quiet
3127 type(
dc_difftime),
intent(in),
optional:: difftime
3128 real(DP),
intent(in),
optional:: timed
3129 logical,
intent(in),
optional:: time_average_store
3130 logical,
intent(out),
optional:: err
3133 character(*),
parameter:: subname =
"HistoryPutReal7"
3138 & pack(array, .true.),
size(array), &
3139 & history = history, &
3143 & difftime = difftime, &
3145 & time_average_store = &
3146 & time_average_store, &
3151 & history, range, time, quiet, &
3152 & difftime, timed, time_average_store, err )
3160 character(*),
intent(in):: varname
3161 integer,
intent(in):: value
3162 type(
gt_history),
intent(inout),
optional,
target:: history
3163 character(*),
intent(in),
optional:: range
3164 real,
intent(in),
optional:: time
3165 logical,
intent(in),
optional:: quiet
3166 type(
dc_difftime),
intent(in),
optional:: difftime
3167 real(DP),
intent(in),
optional:: timed
3168 logical,
intent(in),
optional:: time_average_store
3169 logical,
intent(out),
optional:: err
3172 & varname, array, arraysize, history, range, &
3173 & time, quiet, difftime, timed, time_average_store, err )
3177 character(*),
intent(in):: varname
3178 integer,
intent(in):: arraysize
3179 integer,
intent(in):: array(arraysize)
3180 type(
gt_history),
intent(inout),
target,
optional:: history
3181 character(*),
intent(in),
optional:: range
3182 real,
intent(in),
optional:: time
3183 logical,
intent(in),
optional:: quiet
3184 type(
dc_difftime),
intent(in),
optional:: difftime
3185 real(DP),
intent(in),
optional:: timed
3186 logical,
intent(in),
optional:: time_average_store
3187 logical,
intent(out),
optional:: err
3190 character(*),
parameter:: subname =
"HistoryPutInt0"
3196 & history = history, &
3200 & difftime = difftime, &
3202 & time_average_store = &
3203 & time_average_store, &
3208 & history, range, time, quiet, &
3209 & difftime, timed, time_average_store, err )
3217 character(*),
intent(in):: varname
3218 integer,
intent(in):: array(:)
3219 type(
gt_history),
intent(inout),
optional,
target:: history
3220 character(*),
intent(in),
optional:: range
3221 real,
intent(in),
optional:: time
3222 logical,
intent(in),
optional:: quiet
3223 type(
dc_difftime),
intent(in),
optional:: difftime
3224 real(DP),
intent(in),
optional:: timed
3225 logical,
intent(in),
optional:: time_average_store
3226 logical,
intent(out),
optional:: err
3229 & varname, array, arraysize, history, range, &
3230 & time, quiet, difftime, timed, time_average_store, err )
3234 character(*),
intent(in):: varname
3235 integer,
intent(in):: arraysize
3236 integer,
intent(in):: array(arraysize)
3237 type(
gt_history),
intent(inout),
target,
optional:: history
3238 character(*),
intent(in),
optional:: range
3239 real,
intent(in),
optional:: time
3240 logical,
intent(in),
optional:: quiet
3241 type(
dc_difftime),
intent(in),
optional:: difftime
3242 real(DP),
intent(in),
optional:: timed
3243 logical,
intent(in),
optional:: time_average_store
3244 logical,
intent(out),
optional:: err
3247 character(*),
parameter:: subname =
"HistoryPutInt1"
3252 & pack(array, .true.),
size(array), &
3253 & history = history, &
3257 & difftime = difftime, &
3259 & time_average_store = &
3260 & time_average_store, &
3265 & history, range, time, quiet, &
3266 & difftime, timed, time_average_store, err )
3274 character(*),
intent(in):: varname
3275 integer,
intent(in):: array(:,:)
3276 type(
gt_history),
intent(inout),
optional,
target:: history
3277 character(*),
intent(in),
optional:: range
3278 real,
intent(in),
optional:: time
3279 logical,
intent(in),
optional:: quiet
3280 type(
dc_difftime),
intent(in),
optional:: difftime
3281 real(DP),
intent(in),
optional:: timed
3282 logical,
intent(in),
optional:: time_average_store
3283 logical,
intent(out),
optional:: err
3286 & varname, array, arraysize, history, range, &
3287 & time, quiet, difftime, timed, time_average_store, err )
3291 character(*),
intent(in):: varname
3292 integer,
intent(in):: arraysize
3293 integer,
intent(in):: array(arraysize)
3294 type(
gt_history),
intent(inout),
target,
optional:: history
3295 character(*),
intent(in),
optional:: range
3296 real,
intent(in),
optional:: time
3297 logical,
intent(in),
optional:: quiet
3298 type(
dc_difftime),
intent(in),
optional:: difftime
3299 real(DP),
intent(in),
optional:: timed
3300 logical,
intent(in),
optional:: time_average_store
3301 logical,
intent(out),
optional:: err
3304 character(*),
parameter:: subname =
"HistoryPutInt2"
3309 & pack(array, .true.),
size(array), &
3310 & history = history, &
3314 & difftime = difftime, &
3316 & time_average_store = &
3317 & time_average_store, &
3322 & history, range, time, quiet, &
3323 & difftime, timed, time_average_store, err )
3331 character(*),
intent(in):: varname
3332 integer,
intent(in):: array(:,:,:)
3333 type(
gt_history),
intent(inout),
optional,
target:: history
3334 character(*),
intent(in),
optional:: range
3335 real,
intent(in),
optional:: time
3336 logical,
intent(in),
optional:: quiet
3337 type(
dc_difftime),
intent(in),
optional:: difftime
3338 real(DP),
intent(in),
optional:: timed
3339 logical,
intent(in),
optional:: time_average_store
3340 logical,
intent(out),
optional:: err
3343 & varname, array, arraysize, history, range, &
3344 & time, quiet, difftime, timed, time_average_store, err )
3348 character(*),
intent(in):: varname
3349 integer,
intent(in):: arraysize
3350 integer,
intent(in):: array(arraysize)
3351 type(
gt_history),
intent(inout),
target,
optional:: history
3352 character(*),
intent(in),
optional:: range
3353 real,
intent(in),
optional:: time
3354 logical,
intent(in),
optional:: quiet
3355 type(
dc_difftime),
intent(in),
optional:: difftime
3356 real(DP),
intent(in),
optional:: timed
3357 logical,
intent(in),
optional:: time_average_store
3358 logical,
intent(out),
optional:: err
3361 character(*),
parameter:: subname =
"HistoryPutInt3"
3366 & pack(array, .true.),
size(array), &
3367 & history = history, &
3371 & difftime = difftime, &
3373 & time_average_store = &
3374 & time_average_store, &
3379 & history, range, time, quiet, &
3380 & difftime, timed, time_average_store, err )
3388 character(*),
intent(in):: varname
3389 integer,
intent(in):: array(:,:,:,:)
3390 type(
gt_history),
intent(inout),
optional,
target:: history
3391 character(*),
intent(in),
optional:: range
3392 real,
intent(in),
optional:: time
3393 logical,
intent(in),
optional:: quiet
3394 type(
dc_difftime),
intent(in),
optional:: difftime
3395 real(DP),
intent(in),
optional:: timed
3396 logical,
intent(in),
optional:: time_average_store
3397 logical,
intent(out),
optional:: err
3400 & varname, array, arraysize, history, range, &
3401 & time, quiet, difftime, timed, time_average_store, err )
3405 character(*),
intent(in):: varname
3406 integer,
intent(in):: arraysize
3407 integer,
intent(in):: array(arraysize)
3408 type(
gt_history),
intent(inout),
target,
optional:: history
3409 character(*),
intent(in),
optional:: range
3410 real,
intent(in),
optional:: time
3411 logical,
intent(in),
optional:: quiet
3412 type(
dc_difftime),
intent(in),
optional:: difftime
3413 real(DP),
intent(in),
optional:: timed
3414 logical,
intent(in),
optional:: time_average_store
3415 logical,
intent(out),
optional:: err
3418 character(*),
parameter:: subname =
"HistoryPutInt4"
3423 & pack(array, .true.),
size(array), &
3424 & history = history, &
3428 & difftime = difftime, &
3430 & time_average_store = &
3431 & time_average_store, &
3436 & history, range, time, quiet, &
3437 & difftime, timed, time_average_store, err )
3445 character(*),
intent(in):: varname
3446 integer,
intent(in):: array(:,:,:,:,:)
3447 type(
gt_history),
intent(inout),
optional,
target:: history
3448 character(*),
intent(in),
optional:: range
3449 real,
intent(in),
optional:: time
3450 logical,
intent(in),
optional:: quiet
3451 type(
dc_difftime),
intent(in),
optional:: difftime
3452 real(DP),
intent(in),
optional:: timed
3453 logical,
intent(in),
optional:: time_average_store
3454 logical,
intent(out),
optional:: err
3457 & varname, array, arraysize, history, range, &
3458 & time, quiet, difftime, timed, time_average_store, err )
3462 character(*),
intent(in):: varname
3463 integer,
intent(in):: arraysize
3464 integer,
intent(in):: array(arraysize)
3465 type(
gt_history),
intent(inout),
target,
optional:: history
3466 character(*),
intent(in),
optional:: range
3467 real,
intent(in),
optional:: time
3468 logical,
intent(in),
optional:: quiet
3469 type(
dc_difftime),
intent(in),
optional:: difftime
3470 real(DP),
intent(in),
optional:: timed
3471 logical,
intent(in),
optional:: time_average_store
3472 logical,
intent(out),
optional:: err
3475 character(*),
parameter:: subname =
"HistoryPutInt5"
3480 & pack(array, .true.),
size(array), &
3481 & history = history, &
3485 & difftime = difftime, &
3487 & time_average_store = &
3488 & time_average_store, &
3493 & history, range, time, quiet, &
3494 & difftime, timed, time_average_store, err )
3502 character(*),
intent(in):: varname
3503 integer,
intent(in):: array(:,:,:,:,:,:)
3504 type(
gt_history),
intent(inout),
optional,
target:: history
3505 character(*),
intent(in),
optional:: range
3506 real,
intent(in),
optional:: time
3507 logical,
intent(in),
optional:: quiet
3508 type(
dc_difftime),
intent(in),
optional:: difftime
3509 real(DP),
intent(in),
optional:: timed
3510 logical,
intent(in),
optional:: time_average_store
3511 logical,
intent(out),
optional:: err
3514 & varname, array, arraysize, history, range, &
3515 & time, quiet, difftime, timed, time_average_store, err )
3519 character(*),
intent(in):: varname
3520 integer,
intent(in):: arraysize
3521 integer,
intent(in):: array(arraysize)
3522 type(
gt_history),
intent(inout),
target,
optional:: history
3523 character(*),
intent(in),
optional:: range
3524 real,
intent(in),
optional:: time
3525 logical,
intent(in),
optional:: quiet
3526 type(
dc_difftime),
intent(in),
optional:: difftime
3527 real(DP),
intent(in),
optional:: timed
3528 logical,
intent(in),
optional:: time_average_store
3529 logical,
intent(out),
optional:: err
3532 character(*),
parameter:: subname =
"HistoryPutInt6"
3537 & pack(array, .true.),
size(array), &
3538 & history = history, &
3542 & difftime = difftime, &
3544 & time_average_store = &
3545 & time_average_store, &
3550 & history, range, time, quiet, &
3551 & difftime, timed, time_average_store, err )
3559 character(*),
intent(in):: varname
3560 integer,
intent(in):: array(:,:,:,:,:,:,:)
3561 type(
gt_history),
intent(inout),
optional,
target:: history
3562 character(*),
intent(in),
optional:: range
3563 real,
intent(in),
optional:: time
3564 logical,
intent(in),
optional:: quiet
3565 type(
dc_difftime),
intent(in),
optional:: difftime
3566 real(DP),
intent(in),
optional:: timed
3567 logical,
intent(in),
optional:: time_average_store
3568 logical,
intent(out),
optional:: err
3571 & varname, array, arraysize, history, range, &
3572 & time, quiet, difftime, timed, time_average_store, err )
3576 character(*),
intent(in):: varname
3577 integer,
intent(in):: arraysize
3578 integer,
intent(in):: array(arraysize)
3579 type(
gt_history),
intent(inout),
target,
optional:: history
3580 character(*),
intent(in),
optional:: range
3581 real,
intent(in),
optional:: time
3582 logical,
intent(in),
optional:: quiet
3583 type(
dc_difftime),
intent(in),
optional:: difftime
3584 real(DP),
intent(in),
optional:: timed
3585 logical,
intent(in),
optional:: time_average_store
3586 logical,
intent(out),
optional:: err
3589 character(*),
parameter:: subname =
"HistoryPutInt7"
3594 & pack(array, .true.),
size(array), &
3595 & history = history, &
3599 & difftime = difftime, &
3601 & time_average_store = &
3602 & time_average_store, &
3607 & history, range, time, quiet, &
3608 & difftime, timed, time_average_store, err )
3616 character(*),
intent(in):: varname
3617 character(*),
intent(in):: value
3618 type(
gt_history),
intent(inout),
optional,
target:: history
3619 character(*),
intent(in),
optional:: range
3620 real,
intent(in),
optional:: time
3621 logical,
intent(in),
optional:: quiet
3622 type(
dc_difftime),
intent(in),
optional:: difftime
3623 real(DP),
intent(in),
optional:: timed
3624 logical,
intent(in),
optional:: time_average_store
3625 logical,
intent(out),
optional:: err
3628 & varname, array, arraysize, history, range, &
3629 & time, quiet, difftime, timed, time_average_store, err )
3633 character(*),
intent(in):: varname
3634 integer,
intent(in):: arraysize
3635 character(*),
intent(in):: array(arraysize)
3636 type(
gt_history),
intent(inout),
target,
optional:: history
3637 character(*),
intent(in),
optional:: range
3638 real,
intent(in),
optional:: time
3639 logical,
intent(in),
optional:: quiet
3640 type(
dc_difftime),
intent(in),
optional:: difftime
3641 real(DP),
intent(in),
optional:: timed
3642 logical,
intent(in),
optional:: time_average_store
3643 logical,
intent(out),
optional:: err
3646 character(*),
parameter:: subname =
"HistoryPutChar0"
3652 & history = history, &
3656 & difftime = difftime, &
3658 & time_average_store = &
3659 & time_average_store, &
3691 use,non_intrinsic ::
dc_date_generic, only: evalbyunit,
operator(+),
operator(*), &
3696 character(len = *),
intent(in) :: varname
3698 real,
intent(in):: head
3699 type(
gt_history),
intent(inout),
optional,
target:: history
3700 logical,
intent(out),
optional :: err
3704 real,
pointer:: time(:) =>null()
3707 integer:: timestart, rest
3712 character(STRING):: cause_c, subname_r
3713 character(*),
parameter:: subname =
"TimeGoAhead"
3715 call beginsub(subname,
'varname=%c head=%r', &
3716 & c1=trim(varname), r=(/head/))
3720 if (
present(history))
then
3729 if (v_ord == 0)
goto 1000
3731 if (hst % growable_indices(v_ord) == 0)
then
3734 if (hst % dim_value_written(hst % unlimited_index))
then
3740 call slice(var, hst % growable_indices(v_ord), &
3741 & start=hst % count(1), count=1)
3749 hst % count(v_ord) = hst % count(v_ord) + 1
3750 call slice(var, hst % growable_indices(v_ord), &
3751 & start=hst % count(v_ord), count=1)
3759 timevar = hst % dimvars(hst % unlimited_index)
3760 call get_slice(timevar, 1, start=timestart)
3761 call dbgmessage(
'map(timevar)start is <%d>. map(%c)start is <%d>', &
3762 & i=(/timestart, hst % count(v_ord)/), &
3763 & c1=trim(varname) )
3764 call get(timevar, time, get_err)
3765 call dbgmessage(
'time(%d)=<%*r>, err=<%b>', &
3766 & i=(/
size(time)/), r=(/time(:)/), &
3767 & l=(/get_err/), n=(/
size(time)/) )
3768 if (get_err .or. hst % count(v_ord) == 1 .and. timestart == 1)
then
3774 call slice(timevar, 1, start=1, count=1)
3775 curtime = hst % origin
3777 call put(timevar, (/curtime/), 1)
3778 elseif (hst % count(v_ord) > timestart)
then
3784 rest = timestart + 1
3786 call slice(timevar, 1, start=rest, count=1)
3787 curtime = hst % origin + hst % interval * (rest - 1)
3791 call put(timevar, (/curtime/), 1 )
3793 if ( rest > hst % count(v_ord) )
exit
3810 if (d_ord == 0)
then
3811 subname_r =
'HistoryPut'
3813 cause_c =
'varname="' // trim(varname) //
'" is not found'
3816 hst % dim_value_written(d_ord) = .true.
3817 if (d_ord /= hst % unlimited_index)
then
3823 hst % count(:) = maxval(hst % count(:)) + 1
3828 call slice(var, 1, start=hst % count(1), count=1)
3830 call storeerror(stat, trim(subname_r), err, cause_c)
subroutine dcdifftimeputline(diff, unit, indent)
subroutine historyputint7(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputreal7(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputint6(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputreal3(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputdouble1(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputdouble0(varname, value, history, range, time, quiet, difftime, timed, time_average_store, err)
データ出力
recursive subroutine historyputdoubleex(varname, array, arraysize, history, range, time, quiet, difftime, timed, time_average_store, err)
データ出力
recursive subroutine historyputcharex(varname, array, arraysize, history, range, time, quiet, difftime, timed, time_average_store, err)
データ出力
recursive subroutine historyputrealex(varname, array, arraysize, history, range, time, quiet, difftime, timed, time_average_store, err)
データ出力
subroutine historyputdouble5(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputdouble6(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputaxismpiint(varname, array, history, err)
subroutine historyputreal4(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputaxismpireal(varname, array, history, err)
subroutine historyputreal5(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputreal6(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputdouble4(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputint1(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
recursive subroutine historyputintex(varname, array, arraysize, history, range, time, quiet, difftime, timed, time_average_store, err)
データ出力
subroutine historyputint0(varname, value, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputint4(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputreal1(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputaxismpidouble(varname, array, history, err)
subroutine historyputreal2(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputdouble3(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputdouble7(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputint3(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputint2(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputreal0(varname, value, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputdouble2(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine timegoahead(varname, var, head, history, err)
subroutine historyputint5(varname, array, history, range, time, quiet, difftime, timed, time_average_store, err)
subroutine historyputchar0(varname, value, history, range, time, quiet, difftime, timed, time_average_store, err)
Interface declarations for procedures provided from dc_date.
Derived types and parameters for date and time.
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public usr_errno
-1000 or less: User-defined errors
integer, parameter, public dc_enotinit
-400 or less: DC utilities errors
integer, parameter, public dc_earglack
integer, parameter, public gt_ebaddimname
integer, parameter, public dc_noerr
Error storage variables
integer, parameter, public gt_eargsizemismatch
Judge optional control parameters.
logical function, public present_and_false(arg)
logical function, public present_and_not_empty(arg)
logical function, public present_and_true(arg)
Handling character types.
character(string) function, public joinchar(carray, expr)
subroutine, public dbgmessage(fmt, i, r, d, l, n, c1, c2, c3, ca)
subroutine, public beginsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca, version)
subroutine, public endsub(name, fmt, i, r, d, l, n, c1, c2, c3, ca)
Provides kind type parameter values.
integer, parameter, public string
Character length for string
real(dp), parameter, public dp_eps
Machine epsilon for dobule precision real number.
integer, parameter, public dp
Double Precision Real number
Variable URL string parser.
type(gt_history), target, save, public default