11 & title, source, institution, & ! (in)
12 & dims, dimsizes, longnames, units, &
14 & xtypes, conventions, gt_version, &
17 & namelist_filename, &
19 & slice_start, slice_end, slice_stride, &
24 & origin_date, origin_date_invalid, &
26 & flag_mpi_gather, flag_mpi_split &
84 use gtool_history, only: historyaxiscreate, historyaxisaddattr
91 use netcdf
, only: nf90_emaxdims, nf90_max_dims
96 & dccaldateinquire, dccalinquire, dccaldefault
97 use dc_date, only: dcdifftimecreate, evalbyunit,
tochar, tocharcal, eval
103 character(*),
intent(in):: title
106 character(*),
intent(in):: source
109 character(*),
intent(in):: institution
112 character(*),
intent(in):: dims(:)
131 integer,
intent(in):: dimsizes (:)
159 character(*),
intent(in):: longnames (:)
179 character(*),
intent(in):: units(:)
209 character(*),
intent(in),
optional:: xtypes(:)
239 character(*),
intent(in),
optional:: conventions
258 character(*),
intent(in),
optional:: gt_version
280 logical,
intent(in),
optional:: all_output
316 character(*),
intent(in),
optional:: file_prefix
319 character(*),
intent(in),
optional:: namelist_filename
343 integer,
intent(in),
optional:: slice_start(:)
353 integer,
intent(in),
optional:: slice_end(:)
365 integer,
intent(in),
optional:: slice_stride(:)
375 logical,
intent(in),
optional:: space_average(:)
388 logical,
intent(in),
optional:: time_average
393 integer,
intent(in),
optional:: newfile_interval
404 character(*),
intent(in),
optional:: rank
409 type(
dc_datetime),
intent(in),
optional:: origin_date
416 logical,
intent(in),
optional:: origin_date_invalid
420 type(dc_cal_date),
intent(in),
optional:: start_date
425 type(dc_cal),
intent(in),
optional:: cal
434 logical,
intent(in),
optional:: flag_mpi_gather
451 logical,
intent(in),
optional:: flag_mpi_split
465 character(STRING):: Name
482 character(STRING):: File
497 character(TOKEN):: IntUnit
500 character(TOKEN):: Precision
516 character(STRING):: FilePrefix
519 logical:: TimeAverage
532 real(DP):: OriginValue
535 character(TOKEN):: OriginUnit
538 real(DP):: TerminusValue
541 character(TOKEN):: TerminusUnit
544 integer:: SliceStart(1:nf90_max_dims)
547 integer:: SliceEnd(1:nf90_max_dims)
559 integer:: SliceStride(1:nf90_max_dims)
562 logical:: SpaceAverage(1:nf90_max_dims)
565 integer:: NewFileIntValue
568 character(TOKEN):: NewFileIntUnit
572 namelist /gtool_historyauto_nml/ &
574 & intvalue, intunit, &
577 & timeaverage, alloutput, &
578 & originvalue, originunit, &
579 & terminusvalue, terminusunit, &
580 & slicestart, sliceend, slicestride, spaceaverage, &
581 & newfileintvalue, newfileintunit
602 integer:: blank_index
604 character(STRING):: cause_c
609 character(TOKEN):: pos_nml
613 character(TOKEN):: my_xtype
615 real(DP):: interval_work, origin_work, terminus_work
619 character(STRING):: date_str
620 character(TOKEN):: cal_str, cal_type
621 integer:: origin_year, origin_month, origin_day, origin_hour, origin_min
622 real(DP):: origin_sec
623 integer:: month_in_year, hour_in_day, min_in_hour
624 integer,
pointer:: day_in_month(:) =>null()
625 real(DP):: sec_in_min
626 character(*),
parameter:: subname =
"HistoryAutoCreate3" 637 cause_c =
'gtool_historyauto' 654 if (
size(dimsizes) /=
numdims )
then 655 cause_c =
'dimsizes, dims' 656 elseif (
size(longnames) /=
numdims )
then 657 cause_c =
'longnames, dims' 658 elseif (
size(units) /=
numdims )
then 659 cause_c =
'units, dims' 661 if ( trim(cause_c) /=
"" )
then 666 if (
numdims > nf90_max_dims )
then 674 if ( dimsizes(
numdims) /= 0 )
then 676 &
'time dimension must be specified to the last of "dims"' )
712 if ( blank_index > 1 )
then 722 if (
present(xtypes) )
then 723 if (
size(xtypes) >= i )
then 728 call historyaxiscreate( &
730 & name = dims(i),
size = dimsizes(i), &
731 & longname = longnames(i), units = units(i), &
734 allocate(
data_axes(i) % a_axis( dimsizes(i) ) )
735 data_axes(i) % a_axis = (/ (
real( j, DP ), j = 1, dimsizes(i) ) /)
742 if (
present(cal) )
then 751 if (
present(start_date) )
then 753 call dccaldateinquire( &
754 & date_str = date_str, &
755 & date = start_date, &
760 call dccaldateinquire( &
761 & origin_year, origin_month, origin_day, &
762 & origin_hour, origin_min, origin_sec, &
763 & date = start_date, &
769 & month_in_year = month_in_year, &
770 & day_in_month_ptr = day_in_month , &
771 & hour_in_day = hour_in_day , &
772 & min_in_hour = min_in_hour , &
773 & sec_in_min = sec_in_min , &
778 select case ( trim(cal_str) )
781 &
' since ' // trim(date_str)
784 &
' since ' // trim(date_str)
787 &
' since ' // trim(date_str)
790 &
' since ' // trim(date_str)
793 &
' since ' // trim(date_str)
798 call historyaxisaddattr( &
800 & attrname =
'origin', &
801 &
value =
'origin_year origin_month origin_day ' // &
802 &
'origin_hour origin_min origin_sec' )
812 call historyaxisaddattr( &
814 & attrname =
'calendar', &
817 if ( trim(cal_str) ==
'user_defined' )
then 825 deallocate( day_in_month )
827 elseif (
present(origin_date) &
829 call eval( origin_date, &
830 & day = date_day, sec = date_sec )
831 if ( date_day /= 0 .or. date_sec /= 0.0 )
then 833 &
' since ' //
tochar(origin_date)
835 call historyaxisaddattr( &
837 & attrname =
'calendar', &
838 &
value = tocharcal(origin_date) )
854 if (
present(interval) )
then 860 interval_work = - 1.0
866 origin_work = evalbyunit( origin,
'sec' )
877 & precision =
'float', &
878 & fileprefix = file_prefix, &
879 & interval_value = interval_work, &
881 & origin_value = origin_work, &
882 & origin_unit =
'sec', &
884 & terminus_value = terminus_work, &
886 & time_average = time_average, &
887 & slice_start = slice_start, &
888 & slice_end = slice_end, &
889 & slice_stride = slice_stride, &
890 & space_average = space_average, &
891 & newfile_intvalue = newfile_interval, &
899 & namelist_filename, mode =
'r' )
905 & c1 = trim(namelist_filename), rank_mpi = msnot_rank )
907 do while ( trim(pos_nml) /=
'APPEND' .and. iostat_nml == 0 )
913 & interval_value = intvalue, &
914 & interval_unit = intunit, &
915 & precision = precision, &
916 & time_average = timeaverage, &
917 & origin_value = originvalue, &
918 & origin_unit = originunit, &
919 & terminus_value = terminusvalue, &
920 & terminus_unit = terminusunit, &
921 & slice_start = slicestart, &
922 & slice_end = sliceend, &
923 & slice_stride = slicestride, &
924 & space_average = spaceaverage, &
925 & newfile_intvalue = newfileintvalue, &
926 & newfile_intunit = newfileintunit, &
927 & fileprefix = fileprefix )
929 read( unit = unit_nml, &
930 & nml = gtool_historyauto_nml, &
931 & iostat = iostat_nml )
932 inquire( unit = unit_nml, &
933 & position = pos_nml )
935 if ( iostat_nml == 0 )
then 940 if ( .not. intvalue > 0.0 )
then 941 intvalue = interval_work
944 if ( .not. originvalue > 0.0 )
then 945 originvalue = origin_work
948 if ( .not. terminusvalue > 0.0 )
then 949 terminusvalue = terminus_work
960 & interval_value = intvalue, &
961 & interval_unit = intunit, &
962 & precision = precision, &
963 & time_average = timeaverage, &
964 & origin_value = originvalue, &
965 & origin_unit = originunit, &
966 & terminus_value = terminusvalue, &
967 & terminus_unit = terminusunit, &
968 & slice_start = slicestart, &
969 & slice_end = sliceend, &
970 & slice_stride = slicestride, &
971 & space_average = spaceaverage, &
972 & newfile_intvalue = newfileintvalue, &
973 & newfile_intunit = newfileintunit, &
974 & fileprefix = fileprefix )
979 if ( trim(name) ==
'' )
then 985 if ( trim(file) ==
'' ) file = trim(fileprefix) //
'<Name>.nc' 987 if ( trim(name) ==
'' )
then 997 & d = (/ intvalue /), c1 = trim( intunit ), rank_mpi = msnot_rank )
1001 & d = (/ originvalue /), c1 = trim( originunit ), rank_mpi = msnot_rank )
1003 & d = (/ terminusvalue /), c1 = trim( terminusunit ), rank_mpi = msnot_rank )
1005 & i = slicestart(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1007 & i = sliceend(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1009 & i = slicestride(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1011 & l = spaceaverage(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1013 & i = (/ newfileintvalue /), c1 = trim( newfileintunit ), rank_mpi = msnot_rank )
1018 & i = (/iostat_nml/), rank_mpi = msnot_rank )
1029 call messagenotify(
'M',
sub_sname,
'----- "gtool_historyauto_nml" is not loaded" -----', rank_mpi = msnot_rank )
1034 & interval_value = intvalue, &
1035 & interval_unit = intunit, &
1036 & precision = precision, &
1037 & time_average = timeaverage, &
1038 & origin_value = originvalue, &
1039 & origin_unit = originunit, &
1040 & terminus_value = terminusvalue, &
1041 & terminus_unit = terminusunit, &
1042 & slice_start = slicestart, &
1043 & slice_end = sliceend, &
1044 & slice_stride = slicestride, &
1045 & space_average = spaceaverage, &
1046 & newfile_intvalue = newfileintvalue, &
1047 & newfile_intunit = newfileintunit, &
1048 & fileprefix = fileprefix )
1056 & d = (/ intvalue /), c1 = trim( intunit ), rank_mpi = msnot_rank )
1060 & d = (/ originvalue /), c1 = trim( originunit ), rank_mpi = msnot_rank )
1062 & d = (/ terminusvalue /), c1 = trim( terminusunit ), rank_mpi = msnot_rank )
1064 & i = slicestart(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1066 & i = sliceend(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1068 & i = slicestride(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1070 & l = spaceaverage(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
1072 & i = (/ newfileintvalue /), c1 = trim( newfileintunit ), rank_mpi = msnot_rank )
1083 call storeerror(stat, subname, cause_c = cause_c)
1084 call endsub(subname,
'stat=%d', i = (/stat/) )
1090 & title, source, institution, & ! (in)
1091 & dims, dimsizes, longnames, units, &
1092 & xtypes, conventions, gt_version,&
1095 & namelist_filename, &
1096 & interval, origin, terminus, &
1097 & slice_start, slice_end, slice_stride, &
1100 & newfile_interval, &
1102 & origin_date, origin_date_invalid, &
1103 & start_date, cal, &
1104 & flag_mpi_gather, flag_mpi_split &
1165 use netcdf
, only: nf90_emaxdims, nf90_max_dims
1170 use dc_date, only: dcdifftimecreate, evalbyunit
1176 character(*),
intent(in):: title
1179 character(*),
intent(in):: source
1182 character(*),
intent(in):: institution
1185 character(*),
intent(in):: dims(:)
1204 integer,
intent(in):: dimsizes (:)
1232 character(*),
intent(in):: longnames (:)
1252 character(*),
intent(in):: units(:)
1272 character(*),
intent(in),
optional:: xtypes(:)
1302 character(*),
intent(in),
optional:: conventions
1321 character(*),
intent(in),
optional:: gt_version
1343 logical,
intent(in),
optional:: all_output
1379 character(*),
intent(in),
optional:: file_prefix
1382 character(*),
intent(in),
optional:: namelist_filename
1394 real,
intent(in),
optional:: interval
1406 real,
intent(in),
optional:: origin
1418 real,
intent(in),
optional:: terminus
1430 integer,
intent(in),
optional:: slice_start(:)
1440 integer,
intent(in),
optional:: slice_end(:)
1450 integer,
intent(in),
optional:: slice_stride(:)
1460 logical,
intent(in),
optional:: space_average(:)
1473 logical,
intent(in),
optional:: time_average
1478 integer,
intent(in),
optional:: newfile_interval
1489 character(*),
intent(in),
optional:: rank
1496 type(
dc_datetime),
intent(in),
optional:: origin_date
1503 logical,
intent(in),
optional:: origin_date_invalid
1508 type(dc_cal_date),
intent(in),
optional:: start_date
1513 type(dc_cal),
intent(in),
optional:: cal
1522 logical,
intent(in),
optional:: flag_mpi_gather
1539 logical,
intent(in),
optional:: flag_mpi_split
1550 integer:: blank_index
1551 type(
dc_difftime):: interval_difftime, origin_difftime, terminus_difftime
1553 character(STRING):: cause_c
1554 character(*),
parameter:: subname =
"HistoryAutoCreate2" 1565 cause_c =
'gtool_historyauto' 1574 if (
size(dimsizes) /=
numdims )
then 1575 cause_c =
'dimsizes, dims' 1576 elseif (
size(longnames) /=
numdims )
then 1577 cause_c =
'longnames, dims' 1578 elseif (
size(units) /=
numdims )
then 1579 cause_c =
'units, dims' 1581 if ( trim(cause_c) /=
"" )
then 1586 if (
numdims > nf90_max_dims )
then 1587 stat = nf90_emaxdims
1594 if ( dimsizes(
numdims) /= 0 )
then 1596 &
'time dimension must be specified to the last of "dims"' )
1607 if ( blank_index > 1 )
then 1615 if (
present(interval) )
then 1616 call dcdifftimecreate( &
1617 & interval_difftime, &
1620 call dcdifftimecreate( &
1621 & interval_difftime, &
1628 if (
present(origin) )
then 1629 call dcdifftimecreate( &
1630 & origin_difftime, &
1633 call dcdifftimecreate( &
1634 & origin_difftime, &
1638 if (
present(terminus) )
then 1639 call dcdifftimecreate( &
1640 & terminus_difftime, &
1643 call dcdifftimecreate( &
1644 & terminus_difftime, &
1652 & title = title, source = source, &
1653 & institution = institution, &
1654 & dims = dims, dimsizes = dimsizes, &
1655 & longnames = longnames, units = units, &
1656 & origin = origin_difftime, &
1657 & terminus = terminus_difftime, &
1658 & xtypes = xtypes, &
1659 & conventions = conventions, &
1660 & gt_version = gt_version, &
1661 & all_output = all_output, &
1662 & file_prefix = file_prefix, &
1663 & namelist_filename = namelist_filename, &
1664 & interval = interval_difftime, &
1665 & slice_start = slice_start, &
1666 & slice_end = slice_end, &
1667 & slice_stride = slice_stride, &
1668 & space_average = space_average, &
1669 & time_average = time_average, &
1670 & newfile_interval = newfile_interval, &
1672 & origin_date = origin_date, &
1673 & origin_date_invalid = origin_date_invalid, &
1674 & start_date = start_date, &
1676 & flag_mpi_gather = flag_mpi_gather, &
1677 & flag_mpi_split = flag_mpi_split )
1680 call storeerror(stat, subname, cause_c = cause_c)
1687 & title, source, institution, & ! (in)
1688 & dims, dimsizes, longnames, units, &
1689 & origin, terminus, &
1690 & xtypes, conventions, gt_version, &
1693 & namelist_filename, &
1695 & slice_start, slice_end, slice_stride, &
1698 & newfile_interval, &
1700 & origin_date, origin_date_invalid, &
1701 & start_date, cal, &
1702 & flag_mpi_gather, flag_mpi_split &
1760 use gtool_history, only: historyaxiscreate, historyaxisaddattr
1767 use netcdf
, only: nf90_emaxdims, nf90_max_dims
1772 & dccaldateinquire, dccalinquire, dccaldefault, dccalconvertbyunit
1773 use dc_date, only: dcdifftimecreate, evalbyunit,
tochar, tocharcal, eval
1779 character(*),
intent(in):: title
1782 character(*),
intent(in):: source
1785 character(*),
intent(in):: institution
1788 character(*),
intent(in):: dims(:)
1807 integer,
intent(in):: dimsizes (:)
1835 character(*),
intent(in):: longnames (:)
1855 character(*),
intent(in):: units(:)
1875 real(DP),
intent(in):: origin
1880 real(DP),
intent(in):: terminus
1885 character(*),
intent(in),
optional:: xtypes(:)
1915 character(*),
intent(in),
optional:: conventions
1934 character(*),
intent(in),
optional:: gt_version
1956 logical,
intent(in),
optional:: all_output
1992 character(*),
intent(in),
optional:: file_prefix
1995 character(*),
intent(in),
optional:: namelist_filename
2007 real(DP),
intent(in),
optional:: interval
2019 integer,
intent(in),
optional:: slice_start(:)
2029 integer,
intent(in),
optional:: slice_end(:)
2041 integer,
intent(in),
optional:: slice_stride(:)
2051 logical,
intent(in),
optional:: space_average(:)
2064 logical,
intent(in),
optional:: time_average
2069 integer,
intent(in),
optional:: newfile_interval
2080 character(*),
intent(in),
optional:: rank
2085 type(
dc_datetime),
intent(in),
optional:: origin_date
2092 logical,
intent(in),
optional:: origin_date_invalid
2096 type(dc_cal_date),
intent(in),
optional:: start_date
2101 type(dc_cal),
intent(in),
optional:: cal
2110 logical,
intent(in),
optional:: flag_mpi_gather
2127 logical,
intent(in),
optional:: flag_mpi_split
2141 character(STRING):: Name
2158 character(STRING):: File
2173 character(TOKEN):: IntUnit
2176 character(TOKEN):: Precision
2192 character(STRING):: FilePrefix
2195 logical:: TimeAverage
2208 real(DP):: OriginValue
2211 character(TOKEN):: OriginUnit
2214 real(DP):: TerminusValue
2217 character(TOKEN):: TerminusUnit
2220 integer:: SliceStart(1:nf90_max_dims)
2223 integer:: SliceEnd(1:nf90_max_dims)
2235 integer:: SliceStride(1:nf90_max_dims)
2238 logical:: SpaceAverage(1:nf90_max_dims)
2241 integer:: NewFileIntValue
2244 character(TOKEN):: NewFileIntUnit
2248 namelist /gtool_historyauto_nml/ &
2250 & intvalue, intunit, &
2253 & timeaverage, alloutput, &
2254 & originvalue, originunit, &
2255 & terminusvalue, terminusunit, &
2256 & slicestart, sliceend, slicestride, spaceaverage, &
2257 & newfileintvalue, newfileintunit
2278 integer:: blank_index
2280 character(STRING):: cause_c
2283 integer:: iostat_nml
2285 character(TOKEN):: pos_nml
2289 character(TOKEN):: my_xtype
2291 real(DP):: interval_work, origin_work, terminus_work
2294 integer:: msnot_rank
2295 character(STRING):: date_str
2296 character(TOKEN):: cal_str, cal_type
2297 integer:: origin_year, origin_month, origin_day, origin_hour, origin_min
2298 real(DP):: origin_sec
2299 integer:: month_in_year, hour_in_day, min_in_hour
2300 integer,
pointer:: day_in_month(:) =>null()
2301 real(DP):: sec_in_min
2302 character(*),
parameter:: subname =
"HistoryAutoCreate1" 2313 cause_c =
'gtool_historyauto' 2330 if (
size(dimsizes) /=
numdims )
then 2331 cause_c =
'dimsizes, dims' 2332 elseif (
size(longnames) /=
numdims )
then 2333 cause_c =
'longnames, dims' 2334 elseif (
size(units) /=
numdims )
then 2335 cause_c =
'units, dims' 2337 if ( trim(cause_c) /=
"" )
then 2342 if (
numdims > nf90_max_dims )
then 2343 stat = nf90_emaxdims
2350 if ( dimsizes(
numdims) /= 0 )
then 2352 &
'time dimension must be specified to the last of "dims"' )
2388 if ( blank_index > 1 )
then 2398 if (
present(xtypes) )
then 2399 if (
size(xtypes) >= i )
then 2400 my_xtype = xtypes(i)
2404 call historyaxiscreate( &
2406 & name = dims(i),
size = dimsizes(i), &
2407 & longname = longnames(i), units = units(i), &
2408 & xtype = my_xtype )
2410 allocate(
data_axes(i) % a_axis( dimsizes(i) ) )
2411 data_axes(i) % a_axis = (/ (
real( j, DP ), j = 1, dimsizes(i) ) /)
2418 if (
present(cal) )
then 2427 if (
present(start_date) )
then 2429 call dccaldateinquire( &
2430 & date_str = date_str, &
2431 & date = start_date, &
2436 call dccaldateinquire( &
2437 & origin_year, origin_month, origin_day, &
2438 & origin_hour, origin_min, origin_sec, &
2439 & date = start_date, &
2443 call dccalinquire( &
2445 & month_in_year = month_in_year, &
2446 & day_in_month_ptr = day_in_month , &
2447 & hour_in_day = hour_in_day , &
2448 & min_in_hour = min_in_hour , &
2449 & sec_in_min = sec_in_min , &
2454 select case ( trim(cal_str) )
2455 case (
'gregorian' )
2457 &
' since ' // trim(date_str)
2460 &
' since ' // trim(date_str)
2463 &
' since ' // trim(date_str)
2466 &
' since ' // trim(date_str)
2469 &
' since ' // trim(date_str)
2474 call historyaxisaddattr( &
2476 & attrname =
'origin', &
2477 &
value =
'origin_year origin_month origin_day ' // &
2478 &
'origin_hour origin_min origin_sec' )
2488 call historyaxisaddattr( &
2490 & attrname =
'calendar', &
2493 if ( trim(cal_str) ==
'user_defined' )
then 2501 deallocate( day_in_month )
2503 elseif (
present(origin_date) &
2505 call eval( origin_date, &
2506 & day = date_day, sec = date_sec )
2507 if ( date_day /= 0 .or. date_sec /= 0.0 )
then 2509 &
' since ' //
tochar(origin_date)
2511 call historyaxisaddattr( &
2513 & attrname =
'calendar', &
2514 &
value = tocharcal(origin_date) )
2530 if (
present(interval) )
then 2531 interval_work = interval
2537 interval_work = - 1.0
2545 terminus_work = terminus
2558 & precision =
'float', &
2559 & fileprefix = file_prefix, &
2560 & interval_value = interval_work, &
2562 & origin_value = origin_work, &
2563 & origin_unit =
'sec', &
2565 & terminus_value = terminus_work, &
2567 & time_average = time_average, &
2568 & slice_start = slice_start, &
2569 & slice_end = slice_end, &
2570 & slice_stride = slice_stride, &
2571 & space_average = space_average, &
2572 & newfile_intvalue = newfile_interval, &
2580 & namelist_filename, mode =
'r' )
2586 & c1 = trim(namelist_filename), rank_mpi = msnot_rank )
2588 do while ( trim(pos_nml) /=
'APPEND' .and. iostat_nml == 0 )
2594 & interval_value = intvalue, &
2595 & interval_unit = intunit, &
2596 & precision = precision, &
2597 & time_average = timeaverage, &
2598 & origin_value = originvalue, &
2599 & origin_unit = originunit, &
2600 & terminus_value = terminusvalue, &
2601 & terminus_unit = terminusunit, &
2602 & slice_start = slicestart, &
2603 & slice_end = sliceend, &
2604 & slice_stride = slicestride, &
2605 & space_average = spaceaverage, &
2606 & newfile_intvalue = newfileintvalue, &
2607 & newfile_intunit = newfileintunit, &
2608 & fileprefix = fileprefix )
2610 read( unit = unit_nml, &
2611 & nml = gtool_historyauto_nml, &
2612 & iostat = iostat_nml )
2613 inquire( unit = unit_nml, &
2614 & position = pos_nml )
2616 if ( iostat_nml == 0 )
then 2621 if ( .not. intvalue > 0.0 )
then 2622 intvalue = interval_work
2625 if ( .not. originvalue > 0.0 )
then 2626 originvalue = origin_work
2629 if ( .not. terminusvalue > 0.0 )
then 2630 terminusvalue = terminus_work
2641 & interval_value = intvalue, &
2642 & interval_unit = intunit, &
2643 & precision = precision, &
2644 & time_average = timeaverage, &
2645 & origin_value = originvalue, &
2646 & origin_unit = originunit, &
2647 & terminus_value = terminusvalue, &
2648 & terminus_unit = terminusunit, &
2649 & slice_start = slicestart, &
2650 & slice_end = sliceend, &
2651 & slice_stride = slicestride, &
2652 & space_average = spaceaverage, &
2653 & newfile_intvalue = newfileintvalue, &
2654 & newfile_intunit = newfileintunit, &
2655 & fileprefix = fileprefix )
2660 if ( trim(name) ==
'' )
then 2666 if ( trim(file) ==
'' ) file = trim(fileprefix) //
'<Name>.nc' 2668 if ( trim(name) ==
'' )
then 2678 & d = (/ intvalue /), c1 = trim( intunit ), rank_mpi = msnot_rank )
2682 & d = (/ originvalue /), c1 = trim( originunit ), rank_mpi = msnot_rank )
2684 & d = (/ terminusvalue /), c1 = trim( terminusunit ), rank_mpi = msnot_rank )
2686 & i = slicestart(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2688 & i = sliceend(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2690 & i = slicestride(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2692 & l = spaceaverage(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2694 & i = (/ newfileintvalue /), c1 = trim( newfileintunit ), rank_mpi = msnot_rank )
2699 & i = (/iostat_nml/), rank_mpi = msnot_rank )
2710 call messagenotify(
'M',
sub_sname,
'----- "gtool_historyauto_nml" is not loaded" -----', rank_mpi = msnot_rank )
2715 & interval_value = intvalue, &
2716 & interval_unit = intunit, &
2717 & precision = precision, &
2718 & time_average = timeaverage, &
2719 & origin_value = originvalue, &
2720 & origin_unit = originunit, &
2721 & terminus_value = terminusvalue, &
2722 & terminus_unit = terminusunit, &
2723 & slice_start = slicestart, &
2724 & slice_end = sliceend, &
2725 & slice_stride = slicestride, &
2726 & space_average = spaceaverage, &
2727 & newfile_intvalue = newfileintvalue, &
2728 & newfile_intunit = newfileintunit, &
2729 & fileprefix = fileprefix )
2737 & d = (/ intvalue /), c1 = trim( intunit ), rank_mpi = msnot_rank )
2741 & d = (/ originvalue /), c1 = trim( originunit ), rank_mpi = msnot_rank )
2743 & d = (/ terminusvalue /), c1 = trim( terminusunit ), rank_mpi = msnot_rank )
2745 & i = slicestart(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2747 & i = sliceend(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2749 & i = slicestride(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2751 & l = spaceaverage(1:
numdims-1), n = (/
numdims-1 /), rank_mpi = msnot_rank )
2753 & i = (/ newfileintvalue /), c1 = trim( newfileintunit ), rank_mpi = msnot_rank )
2764 call storeerror(stat, subname, cause_c = cause_c)
2765 call endsub(subname,
'stat=%d', i = (/stat/) )
character(string), save, public time_unit_suffix
character(string), save, public institution_save
logical, save, public all_output_save
logical, save, public initialized
subroutine historyautocreate1(title, source, institution, dims, dimsizes, longnames, units, origin, terminus, xtypes, conventions, gt_version, all_output, file_prefix, namelist_filename, interval, slice_start, slice_end, slice_stride, space_average, time_average, newfile_interval, rank, origin_date, origin_date_invalid, start_date, cal, flag_mpi_gather, flag_mpi_split)
character(string), save, public conventions_save
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ
logical function, public present_and_true(arg)
character(string), save, public title_save
character(string), save, public source_save
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
character(token), save, public gt_version_save
integer, parameter, public hst_enotimedim
character(string) function, public joinchar(carray, expr)
logical, save, public save_mpi_split
type(gt_history_axis_data), dimension(1:nf90_max_dims), target, save, public data_axes
type(gt_history_axis), dimension(1:nf90_max_dims), target, save, public gthst_axes
integer, parameter, public dp
倍精度実数型変数
logical function, public present_and_not_empty(arg)
subroutine, public beginsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca, version)
integer, parameter, public gt_eargsizemismatch
real(dp), save, public zero_time
character(token), save, public time_unit_bycreate
integer, save, public numdims
subroutine historyautocreate3(title, source, institution, dims, dimsizes, longnames, units, origin, terminus, xtypes, conventions, gt_version, all_output, file_prefix, namelist_filename, interval, slice_start, slice_end, slice_stride, space_average, time_average, newfile_interval, rank, origin_date, origin_date_invalid, start_date, cal, flag_mpi_gather, flag_mpi_split)
logical, save, public save_mpi_gather
type(gthst_nmlinfo), save, public gthstnml
character(token), save, public rank_save
subroutine, public endsub(name, fmt, i, r, d, L, n, c1, c2, c3, ca)
type(dc_cal), save, public cal_save
character(*), parameter, public sub_sname
integer, parameter, public dc_ealreadyinit
subroutine historyautocreate2(title, source, institution, dims, dimsizes, longnames, units, xtypes, conventions, gt_version, all_output, file_prefix, namelist_filename, interval, origin, terminus, slice_start, slice_end, slice_stride, space_average, time_average, newfile_interval, rank, origin_date, origin_date_invalid, start_date, cal, flag_mpi_gather, flag_mpi_split)
integer, parameter, public dc_enegative
character(*), parameter, public version
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ