\hypertarget{hstnmlinfoallnamevalid_8f90}{}\section{gtool/gtool\+\_\+history\+\_\+nmlinfo/hstnmlinfoallnamevalid.f90 File Reference}
\label{hstnmlinfoallnamevalid_8f90}\index{gtool/gtool\+\_\+history\+\_\+nmlinfo/hstnmlinfoallnamevalid.\+f90@{gtool/gtool\+\_\+history\+\_\+nmlinfo/hstnmlinfoallnamevalid.\+f90}}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine \hyperlink{hstnmlinfoallnamevalid_8f90_a4a7b634875866f79aa3a32b7f3f4daf9}{hstnmlinfoallnamevalid} (gthstnml, invalid, names, err)
\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{hstnmlinfoallnamevalid_8f90_a4a7b634875866f79aa3a32b7f3f4daf9}\label{hstnmlinfoallnamevalid_8f90_a4a7b634875866f79aa3a32b7f3f4daf9}} 
\index{hstnmlinfoallnamevalid.\+f90@{hstnmlinfoallnamevalid.\+f90}!hstnmlinfoallnamevalid@{hstnmlinfoallnamevalid}}
\index{hstnmlinfoallnamevalid@{hstnmlinfoallnamevalid}!hstnmlinfoallnamevalid.\+f90@{hstnmlinfoallnamevalid.\+f90}}
\subsubsection{\texorpdfstring{hstnmlinfoallnamevalid()}{hstnmlinfoallnamevalid()}}
{\footnotesize\ttfamily subroutine hstnmlinfoallnamevalid (\begin{DoxyParamCaption}\item[{type(gthst\+\_\+nmlinfo), intent(in)}]{gthstnml,  }\item[{logical, intent(out)}]{invalid,  }\item[{character($\ast$), intent(out)}]{names,  }\item[{logical, intent(out), optional}]{err }\end{DoxyParamCaption})}



Definition at line 14 of file hstnmlinfoallnamevalid.\+f90.



References dc\+\_\+trace\+::beginsub(), dc\+\_\+error\+::dc\+\_\+earglack, dc\+\_\+error\+::dc\+\_\+enoentry, dc\+\_\+error\+::dc\+\_\+enotinit, dc\+\_\+error\+::dc\+\_\+noerr, dc\+\_\+types\+::dp, dc\+\_\+trace\+::endsub(), dc\+\_\+string\+::joinchar(), gtool\+\_\+history\+\_\+nmlinfo\+\_\+internal\+::name\+\_\+delimiter, dc\+\_\+present\+::present\+\_\+and\+\_\+not\+\_\+empty(), dc\+\_\+present\+::present\+\_\+and\+\_\+true(), dc\+\_\+types\+::stdout, dc\+\_\+error\+::storeerror(), dc\+\_\+types\+::string, and dc\+\_\+types\+::token.


\begin{DoxyCode}
14     \textcolor{comment}{!}
15     \textcolor{comment}{! 無効な変数名のチェック}
16     \textcolor{comment}{!}
17     \textcolor{comment}{! HstNmlInfoSetValidName によって, 有効性を設定されていない変数が}
18     \textcolor{comment}{! ある場合, }
19     \textcolor{comment}{! *invalid* に .true. を返し, *names* には無効な}
20     \textcolor{comment}{! 変数名をカンマで区切った文字列を返します. }
21     \textcolor{comment}{! }
22     \textcolor{comment}{! なお, 与えられた *gthstnml* が HstNmlInfoCreate によって初期設定}
23     \textcolor{comment}{! されていない場合, プログラムはエラーを発生させます. }
24     \textcolor{comment}{!}
25     \textcolor{comment}{! Check invalid variable names}
26     \textcolor{comment}{! }
27     \textcolor{comment}{! If variable names that are not set validation by }
28     \textcolor{comment}{! "HstNmlInfoSetValidName" are exist, }
29     \textcolor{comment}{! .true. is set to *invalid*, and invalid variable names}
30     \textcolor{comment}{! are joined with comma, and set to *names*. }
31     \textcolor{comment}{!}
32     \textcolor{comment}{! If *gthstnml* is not initialized by "HstNmlInfoCreate" yet, }
33     \textcolor{comment}{! error is occurred.}
34     \textcolor{comment}{!}
35     \textcolor{keywordtype}{use }\hyperlink{namespacegtool__history__nmlinfo__types}{gtool\_history\_nmlinfo\_types}\textcolor{keywordtype}{, only}: 
      \hyperlink{structgtool__history__nmlinfo__types_1_1gthst__nmlinfo}{gthst\_nmlinfo}, \hyperlink{structgtool__history__nmlinfo__types_1_1gthst__nmlinfo__entry}{gthst\_nmlinfo\_entry}
36     \textcolor{keywordtype}{use }\hyperlink{namespacegtool__history__nmlinfo__internal}{gtool\_history\_nmlinfo\_internal}\textcolor{keywordtype}{, only}: 
      \hyperlink{interfacegtool__history__nmlinfo__internal_1_1listsearch}{listsearch}, \hyperlink{interfacegtool__history__nmlinfo__internal_1_1listnext}{listnext}
37     \textcolor{keywordtype}{use }\hyperlink{namespacegtool__history__nmlinfo__internal}{gtool\_history\_nmlinfo\_internal}\textcolor{keywordtype}{, only}: 
      \hyperlink{namespacegtool__history__nmlinfo__internal_a70f5d905a8fb6970a88cf6bf122ab858}{name\_delimiter}
38     \textcolor{keywordtype}{use }\hyperlink{namespacegtool__history}{gtool\_history}\textcolor{keywordtype}{, only}: \hyperlink{interfacegtool__history__generic_1_1historyinitialized}{historyinitialized}
39     \textcolor{keywordtype}{use }\hyperlink{namespacedc__trace}{dc\_trace}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__trace_aca1efe8bae50b85f74980a8c4d704dd8}{beginsub}, \hyperlink{namespacedc__trace_ae44de97565a3bdd685789c7748b37e37}{endsub}
40     \textcolor{keywordtype}{use }\hyperlink{namespacedc__string}{dc\_string}\textcolor{keywordtype}{, only}: \hyperlink{interfacegtdata__generic_1_1putline}{putline}, \hyperlink{interfacedc__string_1_1printf}{printf}, \hyperlink{interfacedc__string_1_1split}{split}, 
      \hyperlink{interfacedc__string_1_1strinclude}{strinclude}, \hyperlink{interfacedc__string_1_1stoa}{stoa}, \hyperlink{namespacedc__string_a20412554f8f648165d202319119cf628}{joinchar}
41     \textcolor{keywordtype}{use }\hyperlink{namespacedc__present}{dc\_present}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__present_aae281a56bc41e9546908a72aeb042430}{present\_and\_not\_empty}, 
      \hyperlink{namespacedc__present_ab280582985ee69fda00e2a0bf09194af}{present\_and\_true}
42     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_ac74a34430fcd3d0eb2344f19d536c086}{dp}, \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}, \hyperlink{namespacedc__types_a6d28eb015ba84292a06f4ff25165b376}{token}, \hyperlink{namespacedc__types_a5d5ccca8cc2b447f2a0546da0a22efdc}{stdout}
43     \textcolor{keywordtype}{use }\hyperlink{namespacedc__error}{dc\_error}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__error_a0104aee83ee5752b1a9f6152b11864a8}{storeerror}, \hyperlink{namespacedc__error_a64841a3c9e3ef7d5ddb175e5770f7dfe}{dc\_noerr}, 
      \hyperlink{namespacedc__error_a31f1081213c338a4f6a6e5acdfe4a8a8}{dc\_enotinit}, \hyperlink{namespacedc__error_a4e4bfd987a6af527e5b7514dd7535f85}{dc\_earglack}, \hyperlink{namespacedc__error_ae5f73ad2e691edb0b6bd1bf837604d5e}{dc\_enoentry}
44     \textcolor{keywordtype}{implicit none}
45     \textcolor{keywordtype}{type}(\hyperlink{structgtool__history__nmlinfo__types_1_1gthst__nmlinfo}{gthst\_nmlinfo}), \textcolor{keywordtype}{intent(in)}:: gthstnml
46     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(out)}:: invalid
47                               \textcolor{comment}{! 無効な変数名が存在する}
48                               \textcolor{comment}{! 場合には .true. を返す. }
49                               \textcolor{comment}{! }
50                               \textcolor{comment}{! If invalid variable names are exist, }
51                               \textcolor{comment}{! .true. is returned. }
52                               \textcolor{comment}{! }
53     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{intent(out)}:: names
54                               \textcolor{comment}{! 無効な変数名のリスト. }
55                               \textcolor{comment}{! }
56                               \textcolor{comment}{! List of invalid variable names. }
57     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(out)}, \textcolor{keywordtype}{optional}:: err
58                               \textcolor{comment}{! 例外処理用フラグ. }
59                               \textcolor{comment}{! デフォルトでは, この手続き内でエラーが}
60                               \textcolor{comment}{! 生じた場合, プログラムは強制終了します. }
61                               \textcolor{comment}{! 引数 *err* が与えられる場合, }
62                               \textcolor{comment}{! プログラムは強制終了せず, 代わりに}
63                               \textcolor{comment}{! *err* に .true. が代入されます. }
64                               \textcolor{comment}{!}
65                               \textcolor{comment}{! Exception handling flag. }
66                               \textcolor{comment}{! By default, when error occur in }
67                               \textcolor{comment}{! this procedure, the program aborts. }
68                               \textcolor{comment}{! If this *err* argument is given, }
69                               \textcolor{comment}{! .true. is substituted to *err* and }
70                               \textcolor{comment}{! the program does not abort. }
71 
72     \textcolor{comment}{!-----------------------------------}
73     \textcolor{comment}{!  作業変数}
74     \textcolor{comment}{!  Work variables}
75     \textcolor{keywordtype}{type}(\hyperlink{structgtool__history__nmlinfo__types_1_1gthst__nmlinfo__entry}{gthst\_nmlinfo\_entry}), \textcolor{keywordtype}{pointer}:: hptr =>null()
76     \textcolor{keywordtype}{integer}:: stat
77     \textcolor{keywordtype}{character(STRING)}:: cause\_c
78     \textcolor{keywordtype}{character(*)}, \textcolor{keywordtype}{parameter}:: subname = \textcolor{stringliteral}{'HstNmlInfoAllNameValid'}
79   \textcolor{keywordflow}{continue}
80     \textcolor{keyword}{call }\hyperlink{namespacedc__trace_aca1efe8bae50b85f74980a8c4d704dd8}{beginsub}( subname )
81     stat = \hyperlink{namespacedc__error_a64841a3c9e3ef7d5ddb175e5770f7dfe}{dc\_noerr}
82     cause\_c = \textcolor{stringliteral}{''}
83 
84     names = \textcolor{stringliteral}{''}
85     invalid = .false.
86 
87     \textcolor{comment}{!-----------------------------------------------------------------}
88     \textcolor{comment}{!  初期設定のチェック}
89     \textcolor{comment}{!  Check initialization}
90     \textcolor{comment}{!-----------------------------------------------------------------}
91     \textcolor{keywordflow}{if} ( .not. gthstnml % initialized ) \textcolor{keywordflow}{then}
92       stat = \hyperlink{namespacedc__error_a31f1081213c338a4f6a6e5acdfe4a8a8}{dc\_enotinit}
93       cause\_c = \textcolor{stringliteral}{'GTHST\_NMLINFO'}
94       \textcolor{keywordflow}{goto} 999
95 \textcolor{keywordflow}{    end if}
96 
97     \textcolor{comment}{!-----------------------------------------------------------------}
98     \textcolor{comment}{!  *gthstnml* 内から, *name* に関する情報を探査.}
99     \textcolor{comment}{!  Search information correspond to *name* in *gthstnml*}
100     \textcolor{comment}{!-----------------------------------------------------------------}
101     hptr => gthstnml % gthstnml\_list
102     \textcolor{keywordflow}{do} \textcolor{keywordflow}{while} ( \textcolor{keyword}{associated}( hptr % next ) )
103       \textcolor{keyword}{call }\hyperlink{interfacegtool__history__nmlinfo__internal_1_1listnext}{listnext}( gthstnml\_list = hptr ) \textcolor{comment}{! (inout)}
104 
105       \textcolor{keywordflow}{if} ( hptr % name\_invalid ) \textcolor{keywordflow}{then}
106         invalid = .true.
107         \textcolor{keywordflow}{if} ( trim(names) /= \textcolor{stringliteral}{''} ) names = trim(names) // \hyperlink{namespacegtool__history__nmlinfo__internal_a70f5d905a8fb6970a88cf6bf122ab858}{name\_delimiter}
108         names = trim(names) // adjustl( hptr % name )
109 \textcolor{keywordflow}{      end if}
110 \textcolor{keywordflow}{    end do}
111 
112     \textcolor{comment}{!-----------------------------------------------------------------}
113     \textcolor{comment}{!  終了処理, 例外処理}
114     \textcolor{comment}{!  Termination and Exception handling}
115     \textcolor{comment}{!-----------------------------------------------------------------}
116 999 \textcolor{keywordflow}{continue}
117     \textcolor{keyword}{call }\hyperlink{namespacedc__error_a0104aee83ee5752b1a9f6152b11864a8}{storeerror}( stat, subname, err, cause\_c )
118     \textcolor{keyword}{call }\hyperlink{namespacedc__trace_ae44de97565a3bdd685789c7748b37e37}{endsub}( subname, fmt = \textcolor{stringliteral}{'@invalid=%y @names=%c'}, &
119       & l = (/ invalid /), c1 = trim(names) )
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{hstnmlinfoallnamevalid_8f90_a4a7b634875866f79aa3a32b7f3f4daf9_cgraph}
\end{center}
\end{figure}
