28 use gtool_historyauto_internal
, only: initialized, numdims, numvars, &
29 & flag_allvarfixed, gthst_vars, gthstnml, save_mpi_gather, sub_sname
32 use dc_trace
, only: beginsub, endsub
34 use dc_message
, only: messagenotify
35 use dc_date, only:
operator(*),
operator(+)
36 use dc_string
, only: joinchar
40 logical:: allvar_invalid
44 integer,
parameter:: names_limit = 100
45 character(names_limit):: names_invalid
49 character(STRING):: name, units, longname, var_info_str
50 character(TOKEN),
pointer:: dims(:) =>null()
53 character(STRING):: cause_c
54 character(*),
parameter:: subname =
"HistoryAutoAllVarFix" 56 call beginsub(subname)
63 if ( .not. initialized )
then 65 cause_c =
'gtool_historyauto' 72 if ( flag_allvarfixed )
goto 999
79 & gthstnml = gthstnml, &
80 & invalid = allvar_invalid, names = names_invalid )
82 if ( len_trim(names_invalid) > (names_limit - 5) )
then 83 names_invalid = names_invalid(1:names_limit - 5) //
' ....' 86 if ( allvar_invalid )
then 88 cause_c = names_invalid
89 call messagenotify(
'W', subname, &
90 &
'names "%c" from NAMELIST "gtool_historyauto_nml" are invalid.', &
91 & c1 = trim(names_invalid) )
99 if ( save_mpi_gather ) msnot_rank = 0
100 call messagenotify(
'M', sub_sname,
'-------------------------------------------', rank_mpi = msnot_rank )
101 call messagenotify(
'M', sub_sname,
'----- Registered variables for output -----', rank_mpi = msnot_rank )
102 call messagenotify(
'M', sub_sname,
'-------------------------------------------', rank_mpi = msnot_rank )
105 call historyvarinfoinquire( &
106 & varinfo = gthst_vars(i), &
109 & longname = longname, &
112 var_info_str = trim( longname ) //
' [' // &
113 & trim( units ) //
'] {' // &
114 & trim( joinchar( dims,
',' ) ) //
'}' 117 call messagenotify(
'M', sub_sname,
' %c (%c)', &
118 & c1 = trim(name), c2 = trim(var_info_str), rank_mpi = msnot_rank )
121 call messagenotify(
'M', sub_sname,
'-----', rank_mpi = msnot_rank )
126 if ( .not. flag_allvarfixed ) flag_allvarfixed = .true.
129 call storeerror(stat, subname, cause_c = cause_c)
130 call endsub(subname,
'stat=%d', i = (/stat/) )
integer, parameter, public dc_enotinit
integer, parameter, public token
Character length for word, token.
subroutine, public storeerror(number, where, err, cause_c, cause_i)
integer, parameter, public dc_noerr
integer, parameter, public hst_ebadvarname
integer, parameter, public dp
Double Precision Real number.
Provides kind type parameter values.
integer, parameter, public string
Character length for string.