\hypertarget{interfacedc__url_1_1urlsplit}{}\section{dc\+\_\+url\+:\+:urlsplit Interface Reference}
\label{interfacedc__url_1_1urlsplit}\index{dc\+\_\+url\+::urlsplit@{dc\+\_\+url\+::urlsplit}}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
subroutine \hyperlink{interfacedc__url_1_1urlsplit_a79e80b3380c47e02246c4880e8c3e745}{url\+\_\+split\+\_\+c} (fullname, file, var, attr, iorange)
\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 60 of file dc\+\_\+url.\+f90.



\subsection{Member Function/\+Subroutine Documentation}
\mbox{\Hypertarget{interfacedc__url_1_1urlsplit_a79e80b3380c47e02246c4880e8c3e745}\label{interfacedc__url_1_1urlsplit_a79e80b3380c47e02246c4880e8c3e745}} 
\index{dc\+\_\+url\+::urlsplit@{dc\+\_\+url\+::urlsplit}!url\+\_\+split\+\_\+c@{url\+\_\+split\+\_\+c}}
\index{url\+\_\+split\+\_\+c@{url\+\_\+split\+\_\+c}!dc\+\_\+url\+::urlsplit@{dc\+\_\+url\+::urlsplit}}
\subsubsection{\texorpdfstring{url\+\_\+split\+\_\+c()}{url\_split\_c()}}
{\footnotesize\ttfamily subroutine dc\+\_\+url\+::urlsplit\+::url\+\_\+split\+\_\+c (\begin{DoxyParamCaption}\item[{character(len = $\ast$), intent(in)}]{fullname,  }\item[{character(len = $\ast$), intent(out), optional}]{file,  }\item[{character(len = $\ast$), intent(out), optional}]{var,  }\item[{character(len = $\ast$), intent(out), optional}]{attr,  }\item[{character(len = $\ast$), intent(out), optional}]{iorange }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 254 of file dc\+\_\+url.\+f90.


\begin{DoxyCode}
254     \textcolor{comment}{!}
255     \textcolor{comment}{! fullname で与えられる変数 URL を、ファイル名 file、 変数名 var、}
256     \textcolor{comment}{! 属性名 attr、入出力範囲指定 iorange に分解して返します。}
257     \textcolor{comment}{! 見つからない成分には空文字列が代入されます。}
258     \textcolor{comment}{!}
259     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
260     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: fullname
261     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(out)}, \textcolor{keywordtype}{optional}:: file, var, attr, iorange
262     \textcolor{keywordtype}{character(len = STRING)}:: varpart
263     \textcolor{keywordtype}{integer}:: atmark, colon, comma
264     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{parameter}:: varname\_set &
265       = \textcolor{stringliteral}{"0123456789eEdD+-=^,.:\_"} &
266       // \textcolor{stringliteral}{"ABCDEFGHIJKLMNOPQRSTUVWXYZ"} &
267       // \textcolor{stringliteral}{"abcdefghijklmnopqrstuvwxyz"}
268   \textcolor{keywordflow}{continue}
269     \textcolor{comment}{! まず URL と変数属性指定 (? または @ 以降) を分離する。}
270     \textcolor{comment}{! URL は @ を含みうるため、最後の @ 以降に対して変数属性}
271     \textcolor{comment}{! として許されない文字（典型的には '/'）が含まれていたら}
272     \textcolor{comment}{! 当該 @ は URL の一部とみなす。}
273     atmark = index(fullname, gt\_question)
274     \textcolor{keywordflow}{if} (atmark == 0) \textcolor{keywordflow}{then}
275       atmark = index(fullname, gt\_atmark, back=.true.)
276       \textcolor{keywordflow}{if} (atmark /= 0) \textcolor{keywordflow}{then}
277         \textcolor{keywordflow}{if} (verify(trim(fullname(atmark+1: )), varname\_set) /= 0) \textcolor{keywordflow}{then}
278           atmark = 0
279 \textcolor{keywordflow}{        endif}
280 \textcolor{keywordflow}{      endif}
281 \textcolor{keywordflow}{    endif}
282     \textcolor{keywordflow}{if} (atmark == 0) \textcolor{keywordflow}{then}
283       \textcolor{comment}{! 変数属性指定はなかった。}
284       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(file)) file = fullname
285       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(var)) var = \textcolor{stringliteral}{''}
286       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(attr)) attr = \textcolor{stringliteral}{''}
287       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(iorange)) iorange = \textcolor{stringliteral}{''}
288       \textcolor{keywordflow}{return}
289 \textcolor{keywordflow}{    endif}
290     varpart = fullname(atmark+1: )
291     \textcolor{comment}{! 変数属性指定があった。}
292     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(file)) file = fullname(1: atmark - 1)
293     \textcolor{comment}{! 範囲指定を探索する。}
294     comma = index(varpart, gt\_comma)
295     \textcolor{keywordflow}{if} (comma /= 0) \textcolor{keywordflow}{then}
296       \textcolor{comment}{! 範囲指定がみつかった。}
297       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(var)) var = varpart(1: comma - 1)
298       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(attr)) attr = \textcolor{stringliteral}{''}
299       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(iorange)) iorange = varpart(comma + 1: )
300       \textcolor{keywordflow}{return}
301 \textcolor{keywordflow}{    endif}
302     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(iorange)) iorange = \textcolor{stringliteral}{''}
303     \textcolor{comment}{! 範囲指定がなかったので、属性名の検索をする。}
304     colon = index(varpart, gt\_colon)
305     \textcolor{keywordflow}{if} (colon == 0) \textcolor{keywordflow}{then}
306       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(var)) var = varpart
307       \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(attr)) attr = \textcolor{stringliteral}{''}
308       varpart = \textcolor{stringliteral}{''}
309       \textcolor{keywordflow}{return}
310 \textcolor{keywordflow}{    endif}
311     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(var)) var = varpart(1: colon - 1)
312     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(attr)) attr = varpart(colon + 1: )
313     varpart = \textcolor{stringliteral}{''}
\end{DoxyCode}


The documentation for this interface was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
dc\+\_\+utils/\hyperlink{dc__url_8f90}{dc\+\_\+url.\+f90}\end{DoxyCompactItemize}
