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
文字列を保持する 文字型変数の種別型パラメタ