\hypertarget{namespacedc__url}{}\section{dc\+\_\+url Module Reference}
\label{namespacedc__url}\index{dc\+\_\+url@{dc\+\_\+url}}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
character(len=string) function \hyperlink{namespacedc__url_af5aa53b355ef567ca05ded2322093075}{url\+\_\+merge\+\_\+cccca} (file, var, attr, iorange)
\item 
character(len=string) function \hyperlink{namespacedc__url_a8a37c526c11d4c466702673759574ea9}{url\+\_\+merge\+\_\+cccc} (file, var, attr, iorange)
\item 
subroutine, public \hyperlink{namespacedc__url_a6e8628cb51802dea9310a52cb051f63f}{url\+\_\+chop\+\_\+iorange} (fullname, iorange, remainder)
\item 
character(len=string) function \hyperlink{namespacedc__url_aa378c26883bed106dbf635523363456c}{url\+\_\+search\+\_\+iorange} (fullname, dimvar)
\item 
subroutine \hyperlink{namespacedc__url_aa6216708cb0d229674d853011f38abd5}{url\+\_\+split\+\_\+c} (fullname, file, var, attr, iorange)
\item 
logical function \hyperlink{namespacedc__url_a007a65d254e1c46144a9c998c9d9dd1e}{urlonthesamefile} (url\+\_\+a, url\+\_\+b)
\item 
character(len=string) function \hyperlink{namespacedc__url_ace410d53bb7527c2efc1e8553199ffcd}{url\+\_\+resolve\+\_\+c} (relative, base)
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
character, parameter, public \hyperlink{namespacedc__url_a3157f15c35d09732b55dfb0f4f52397d}{gt\+\_\+atmark} = \char`\"{}@\char`\"{}
\item 
character, parameter, public \hyperlink{namespacedc__url_ae3630e89b6faeae074924581df62543b}{gt\+\_\+question} = \char`\"{}?\char`\"{}
\item 
character, parameter, public \hyperlink{namespacedc__url_a8a012262cb2d70e929fb1d929c1f5752}{gt\+\_\+colon} = \char`\"{}\+:\char`\"{}
\item 
character, parameter, public \hyperlink{namespacedc__url_a61f457425e29d1452036669b43735790}{gt\+\_\+comma} = \char`\"{},\char`\"{}
\item 
character, parameter, public \hyperlink{namespacedc__url_a7136bff4d1b5152ca579575eb6a99f75}{gt\+\_\+equal} = \char`\"{}=\char`\"{}
\item 
character, parameter, public \hyperlink{namespacedc__url_adf1b8d55d944dc6510d8ba57d54bc168}{gt\+\_\+circumflex} = \char`\"{}$^\wedge$\char`\"{}
\item 
character, parameter, public \hyperlink{namespacedc__url_a373b7d2195c21ebf1458e79ad72dce0d}{gt\+\_\+plus} = \char`\"{}+\char`\"{}
\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacedc__url_a6e8628cb51802dea9310a52cb051f63f}\label{namespacedc__url_a6e8628cb51802dea9310a52cb051f63f}} 
\index{dc\+\_\+url@{dc\+\_\+url}!url\+\_\+chop\+\_\+iorange@{url\+\_\+chop\+\_\+iorange}}
\index{url\+\_\+chop\+\_\+iorange@{url\+\_\+chop\+\_\+iorange}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{url\+\_\+chop\+\_\+iorange()}{url\_chop\_iorange()}}
{\footnotesize\ttfamily subroutine, public dc\+\_\+url\+::url\+\_\+chop\+\_\+iorange (\begin{DoxyParamCaption}\item[{character(len = $\ast$), intent(in)}]{fullname,  }\item[{character(len = $\ast$), intent(out)}]{iorange,  }\item[{character(len = $\ast$), intent(out)}]{remainder }\end{DoxyParamCaption})}



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



References dc\+\_\+types\+::string, and url\+\_\+merge\+\_\+cccc().


\begin{DoxyCode}
201     \textcolor{comment}{!}
202     \textcolor{comment}{! fullname で与えられる変数 URL の入出力範囲指定部分と}
203     \textcolor{comment}{! 残りの部分とを分離し、それぞれ iorange と remainder に返します。}
204     \textcolor{comment}{!}
205     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
206     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: fullname
207     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(out)}:: iorange   \textcolor{comment}{! 入出力範囲指定部分}
208     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(out)}:: remainder \textcolor{comment}{! 残りの部分}
209     \textcolor{keywordtype}{character(STRING)}:: file, var, attr
210     \textcolor{keyword}{call }urlsplit(fullname, file=file, var=var, attr=attr, iorange=iorange)
211     remainder = url\_merge\_cccc(file=file, var=var, attr=attr, iorange=\textcolor{stringliteral}{""})
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacedc__url_a6e8628cb51802dea9310a52cb051f63f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacedc__url_a8a37c526c11d4c466702673759574ea9}\label{namespacedc__url_a8a37c526c11d4c466702673759574ea9}} 
\index{dc\+\_\+url@{dc\+\_\+url}!url\+\_\+merge\+\_\+cccc@{url\+\_\+merge\+\_\+cccc}}
\index{url\+\_\+merge\+\_\+cccc@{url\+\_\+merge\+\_\+cccc}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{url\+\_\+merge\+\_\+cccc()}{url\_merge\_cccc()}}
{\footnotesize\ttfamily character(len = string) function dc\+\_\+url\+::url\+\_\+merge\+\_\+cccc (\begin{DoxyParamCaption}\item[{character(len = $\ast$), intent(in)}]{file,  }\item[{character(len = $\ast$), intent(in)}]{var,  }\item[{character(len = $\ast$), intent(in)}]{attr,  }\item[{character(len = $\ast$), intent(in)}]{iorange }\end{DoxyParamCaption})}



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



References gt\+\_\+atmark, gt\+\_\+colon, gt\+\_\+comma, and dc\+\_\+types\+::string.


\begin{DoxyCode}
171     \textcolor{comment}{!}
172     \textcolor{comment}{! ファイル名 file、変数名 var、属性 attr、}
173     \textcolor{comment}{! 入出力範囲 iorange を結合して relsult として返します。}
174     \textcolor{comment}{!}
175     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
176     \textcolor{keywordtype}{character(len = STRING)}:: result
177     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: file
178     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: var
179     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: attr
180     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: iorange
181   \textcolor{keywordflow}{continue}
182     \textcolor{keywordflow}{if} (trim(file) /= \textcolor{stringliteral}{""}) \textcolor{keywordflow}{then}
183       result = trim(file) // gt\_atmark
184     \textcolor{keywordflow}{else}
185       result = gt\_atmark
186 \textcolor{keywordflow}{    endif}
187     \textcolor{keywordflow}{if} (trim(var) /= \textcolor{stringliteral}{""}) result = trim(result) // var
188     \textcolor{keywordflow}{if} (trim(attr) /= \textcolor{stringliteral}{""}) \textcolor{keywordflow}{then}
189       result = trim(result) // gt\_colon // attr
190 \textcolor{keywordflow}{    endif}
191     \textcolor{keywordflow}{if} (trim(iorange) /= \textcolor{stringliteral}{""}) \textcolor{keywordflow}{then}
192       \textcolor{keywordflow}{if} (iorange(1:1) == gt\_comma) \textcolor{keywordflow}{then}
193         result = trim(result) // iorange
194       \textcolor{keywordflow}{else}
195         result = trim(result) // gt\_comma // iorange
196 \textcolor{keywordflow}{      endif}
197 \textcolor{keywordflow}{    endif}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_af5aa53b355ef567ca05ded2322093075}\label{namespacedc__url_af5aa53b355ef567ca05ded2322093075}} 
\index{dc\+\_\+url@{dc\+\_\+url}!url\+\_\+merge\+\_\+cccca@{url\+\_\+merge\+\_\+cccca}}
\index{url\+\_\+merge\+\_\+cccca@{url\+\_\+merge\+\_\+cccca}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{url\+\_\+merge\+\_\+cccca()}{url\_merge\_cccca()}}
{\footnotesize\ttfamily character(len = string) function dc\+\_\+url\+::url\+\_\+merge\+\_\+cccca (\begin{DoxyParamCaption}\item[{character(len = $\ast$), intent(in)}]{file,  }\item[{character(len = $\ast$), intent(in)}]{var,  }\item[{character(len = $\ast$), intent(in)}]{attr,  }\item[{character(len = $\ast$), dimension(\+:), intent(in)}]{iorange }\end{DoxyParamCaption})}



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



References gt\+\_\+atmark, gt\+\_\+colon, gt\+\_\+comma, and dc\+\_\+types\+::string.


\begin{DoxyCode}
136     \textcolor{comment}{!}
137     \textcolor{comment}{! ファイル名 file、変数名 var、属性 attr、}
138     \textcolor{comment}{! 入出力範囲 iorange を結合して relsult として返します。}
139     \textcolor{comment}{! iorange には文字型配列を与えます。文字型配列のそれぞれの要素は}
140     \textcolor{comment}{! GT\_COMMA で連結されてから結合されます。}
141     \textcolor{comment}{!}
142     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
143     \textcolor{keywordtype}{character(len = STRING)}:: result
144     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: file
145     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: var
146     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: attr
147     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: iorange(:)
148     \textcolor{keywordtype}{integer}:: i
149   \textcolor{keywordflow}{continue}
150     \textcolor{keywordflow}{if} (file /= \textcolor{stringliteral}{""}) \textcolor{keywordflow}{then}
151       result = trim(file) // gt\_atmark
152     \textcolor{keywordflow}{else}
153       result = gt\_atmark
154 \textcolor{keywordflow}{    endif}
155     \textcolor{keywordflow}{if} (var /= \textcolor{stringliteral}{""}) result = trim(result) // var
156     \textcolor{keywordflow}{if} (attr /= \textcolor{stringliteral}{""}) \textcolor{keywordflow}{then}
157       result = trim(result) // gt\_colon // attr
158 \textcolor{keywordflow}{    endif}
159     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(iorange)
160       \textcolor{keywordflow}{if} (iorange(i) /= \textcolor{stringliteral}{""}) \textcolor{keywordflow}{then}
161         \textcolor{keywordflow}{if} (iorange(i)(1:1) == gt\_comma) \textcolor{keywordflow}{then}
162           result = trim(result) // trim(iorange(i))
163         \textcolor{keywordflow}{else}
164           result = trim(result) // gt\_comma // trim(iorange(i))
165 \textcolor{keywordflow}{        endif}
166 \textcolor{keywordflow}{      endif}
167 \textcolor{keywordflow}{    end do}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_ace410d53bb7527c2efc1e8553199ffcd}\label{namespacedc__url_ace410d53bb7527c2efc1e8553199ffcd}} 
\index{dc\+\_\+url@{dc\+\_\+url}!url\+\_\+resolve\+\_\+c@{url\+\_\+resolve\+\_\+c}}
\index{url\+\_\+resolve\+\_\+c@{url\+\_\+resolve\+\_\+c}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{url\+\_\+resolve\+\_\+c()}{url\_resolve\_c()}}
{\footnotesize\ttfamily character(len = string) function dc\+\_\+url\+::url\+\_\+resolve\+\_\+c (\begin{DoxyParamCaption}\item[{character(len = $\ast$), intent(in)}]{relative,  }\item[{character(len = $\ast$), intent(in)}]{base }\end{DoxyParamCaption})}



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



References dc\+\_\+types\+::string.


\begin{DoxyCode}
405     \textcolor{comment}{!}
406     \textcolor{comment}{! relative で与えられる変数 URL が完全でない (ファイル名、 変数名、}
407     \textcolor{comment}{! 属性名、入出力範囲指定のどれかが無い) 場合に、 base}
408     \textcolor{comment}{! から補完します。}
409     \textcolor{comment}{!}
410     \textcolor{keywordtype}{use }dc\_string\textcolor{keywordtype}{, only}: strhead
411     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
412     \textcolor{keywordtype}{use }dc\_trace\textcolor{keywordtype}{, only}: beginsub, endsub, dbgmessage
413     \textcolor{keywordtype}{implicit none}
414     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: relative
415     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: base
416     \textcolor{keywordtype}{character(len = STRING)}:: result
417     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{parameter}:: file = 1, var = 2, attr = 3, ior = 4
418     \textcolor{keywordtype}{character(len = STRING)}:: rel(file:ior), bas(file:ior)
419     \textcolor{keywordtype}{character(3)}, \textcolor{keywordtype}{parameter}:: pathdelim = \textcolor{stringliteral}{"/:"} // achar(94)
420     \textcolor{keywordtype}{integer}:: idir\_r, idir\_b
421   \textcolor{keywordflow}{continue}
422     \textcolor{keyword}{call }beginsub(\textcolor{stringliteral}{'urlresolve'}, \textcolor{stringliteral}{'rel=<%c> base=<%c>'}, c1=relative, c2=base)
423     \textcolor{keyword}{call }urlsplit(trim(relative), file=rel(file), var=rel(var), &
424       & attr=rel(attr), iorange=rel(ior))
425     \textcolor{keyword}{call }dbgmessage(\textcolor{stringliteral}{'rel -> file=<%c> var=<%c> attr=<%c>'}, &
426       & c1=trim(rel(file)), c2=trim(rel(var)), &
427       & c3=(trim(rel(attr)) // \textcolor{stringliteral}{'> ior=<'} // trim(rel(ior))))
428     \textcolor{keyword}{call }urlsplit(base, file=bas(file), var=bas(var), &
429       & attr=bas(attr), iorange=bas(ior))
430     \textcolor{keyword}{call }dbgmessage(\textcolor{stringliteral}{'base -> file=<%s> var=<%s> attr=<%s> ior=<%s>'}, &
431       & c1=trim(bas(file)), c2=trim(bas(var)), &
432       & c3=(trim(bas(attr)) // \textcolor{stringliteral}{'> ior=<'} // trim(bas(ior))))
433     \textcolor{comment}{! --- ファイル名を欠くばあいは単に補う ---}
434     \textcolor{keywordflow}{if} (rel(file) == \textcolor{stringliteral}{""}) \textcolor{keywordflow}{then}
435       rel(file) = bas(file)
436       \textcolor{keywordflow}{if} (rel(var) == \textcolor{stringliteral}{""}) &
437         & rel(var) = bas(var)
438       result = urlmerge(file=rel(file), var=rel(var), &
439         & attr=rel(attr), iorange=rel(ior))
440       \textcolor{keyword}{call }endsub(\textcolor{stringliteral}{'urlresolve'}, \textcolor{stringliteral}{'1 result=%c'}, c1=trim(result))
441       \textcolor{keywordflow}{return}
442 \textcolor{keywordflow}{    endif}
443     \textcolor{comment}{! --- 絶対パス (と見られる) ファイル名はそのまま使用 ---}
444     \textcolor{keywordflow}{if} (strhead(rel(file), \textcolor{stringliteral}{"file:"}) &
445       & .OR. strhead(rel(file), \textcolor{stringliteral}{"http:"}) &
446       & .OR. strhead(rel(file), \textcolor{stringliteral}{"ftp:"}) &
447       & .OR. strhead(rel(file), \textcolor{stringliteral}{"news:"}) &
448       & .OR. strhead(rel(file), \textcolor{stringliteral}{"www"}) &
449       & .OR. strhead(rel(file), \textcolor{stringliteral}{"/"}) &
450       & .OR. strhead(rel(file), achar(94)) &
451       & .OR. rel(file)(2:2) == \textcolor{stringliteral}{":"} &
452       ) \textcolor{keywordflow}{then}
453       result = relative
454       \textcolor{keyword}{call }endsub(\textcolor{stringliteral}{'urlresolve'}, \textcolor{stringliteral}{'2 result=%c'}, c1=trim(result))
455       \textcolor{keywordflow}{return}
456 \textcolor{keywordflow}{    endif}
457     \textcolor{comment}{! ディレクトリ名の取り出し}
458     idir\_b = scan(bas(file), pathdelim, back=.true.) 
459     \textcolor{keywordflow}{if} (idir\_b == 0) \textcolor{keywordflow}{then}
460       \textcolor{comment}{! が、できなければ、（エラーとすべきかもしれぬが）}
461       \textcolor{comment}{! 相対パスをそのまま使用}
462       result = relative
463       \textcolor{keyword}{call }endsub(\textcolor{stringliteral}{'urlresolve'}, \textcolor{stringliteral}{'3 result=%c'}, c1=trim(result))
464       \textcolor{keywordflow}{return}
465 \textcolor{keywordflow}{    endif}
466     \textcolor{comment}{! 相対パスのほうのディレクトリ名の取り出し}
467     idir\_r = scan(rel(file), pathdelim, back=.true.)
468     \textcolor{keywordflow}{if} (idir\_r == 0) \textcolor{keywordflow}{then}
469       \textcolor{comment}{! ができなければ全体を使用}
470       idir\_r = 1
471 \textcolor{keywordflow}{    endif}
472     result = base(1: idir\_b) // relative(idir\_r: )
473     \textcolor{keyword}{call }endsub(\textcolor{stringliteral}{'urlresolve'}, \textcolor{stringliteral}{'4 result=%c'}, c1=trim(result))
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_aa378c26883bed106dbf635523363456c}\label{namespacedc__url_aa378c26883bed106dbf635523363456c}} 
\index{dc\+\_\+url@{dc\+\_\+url}!url\+\_\+search\+\_\+iorange@{url\+\_\+search\+\_\+iorange}}
\index{url\+\_\+search\+\_\+iorange@{url\+\_\+search\+\_\+iorange}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{url\+\_\+search\+\_\+iorange()}{url\_search\_iorange()}}
{\footnotesize\ttfamily character(len = string) function dc\+\_\+url\+::url\+\_\+search\+\_\+iorange (\begin{DoxyParamCaption}\item[{character(len = $\ast$), intent(in)}]{fullname,  }\item[{character(len = $\ast$), intent(in)}]{dimvar }\end{DoxyParamCaption})}



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



References gt\+\_\+atmark, gt\+\_\+comma, gt\+\_\+equal, gt\+\_\+question, and dc\+\_\+types\+::string.


\begin{DoxyCode}
215     \textcolor{comment}{!}
216     \textcolor{comment}{! 変数 URL *fullname* 内の, 次元 *dimvar* に関する}
217     \textcolor{comment}{! 入出力範囲指定の値を取得します。}
218     \textcolor{comment}{!}
219     \textcolor{comment}{! fullname には gtool4 変数全体または入出力範囲指定部分の値を与えます。}
220     \textcolor{comment}{! dimvar には入出力範囲指定部分に含まれる次元変数名を与えます。}
221     \textcolor{comment}{! dimvar に対応する次元変数が存在する場合、その値を返します。}
222     \textcolor{comment}{! dimvar に対応する次元変数が存在しない場合、空文字を返します。}
223     \textcolor{comment}{!}
224     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
225     \textcolor{keywordtype}{use }dc\_string\textcolor{keywordtype}{, only}: split
226     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: fullname
227     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)}:: dimvar
228     \textcolor{keywordtype}{character(len = STRING)}:: result
229     \textcolor{keywordtype}{character(STRING)}:: file, var, attr, iorange
230     \textcolor{keywordtype}{character(STRING)}, \textcolor{keywordtype}{pointer} :: ioranges\_slice(:) => null()
231     \textcolor{keywordtype}{integer} :: i, eqpos, atmark
232   \textcolor{keywordflow}{continue}
233     result = \textcolor{stringliteral}{""}
234     \textcolor{comment}{! @ または ? が含まれているなら urlsplit で分離}
235     atmark = index(fullname, gt\_question)
236     \textcolor{keywordflow}{if} (atmark == 0) atmark = index(fullname, gt\_atmark)
237     \textcolor{keywordflow}{if} (atmark /= 0) \textcolor{keywordflow}{then}
238       \textcolor{keyword}{call }urlsplit(fullname, file=file, var=var, attr=attr, iorange=iorange)
239     \textcolor{keywordflow}{else}
240       iorange = fullname
241 \textcolor{keywordflow}{    end if}
242     \textcolor{keyword}{call }split(iorange, ioranges\_slice, gt\_comma)
243     \textcolor{keywordflow}{do} i = 1, \textcolor{keyword}{size}(ioranges\_slice)
244       eqpos = index(ioranges\_slice(i), gt\_equal)
245       \textcolor{keywordflow}{if} (ioranges\_slice(i)(1:eqpos-1) == trim(dimvar)) \textcolor{keywordflow}{then}
246         result = trim(ioranges\_slice(i)(eqpos+1:))
247         \textcolor{keywordflow}{exit}
248 \textcolor{keywordflow}{      end if}
249 \textcolor{keywordflow}{    end do}
250     \textcolor{keyword}{deallocate}(ioranges\_slice)
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_aa6216708cb0d229674d853011f38abd5}\label{namespacedc__url_aa6216708cb0d229674d853011f38abd5}} 
\index{dc\+\_\+url@{dc\+\_\+url}!url\+\_\+split\+\_\+c@{url\+\_\+split\+\_\+c}}
\index{url\+\_\+split\+\_\+c@{url\+\_\+split\+\_\+c}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{url\+\_\+split\+\_\+c()}{url\_split\_c()}}
{\footnotesize\ttfamily subroutine dc\+\_\+url\+::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})}



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



References gt\+\_\+atmark, gt\+\_\+colon, gt\+\_\+comma, gt\+\_\+question, and dc\+\_\+types\+::string.


\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}
\mbox{\Hypertarget{namespacedc__url_a007a65d254e1c46144a9c998c9d9dd1e}\label{namespacedc__url_a007a65d254e1c46144a9c998c9d9dd1e}} 
\index{dc\+\_\+url@{dc\+\_\+url}!urlonthesamefile@{urlonthesamefile}}
\index{urlonthesamefile@{urlonthesamefile}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{urlonthesamefile()}{urlonthesamefile()}}
{\footnotesize\ttfamily logical function dc\+\_\+url\+::urlonthesamefile (\begin{DoxyParamCaption}\item[{character(len = $\ast$), intent(in)}]{url\+\_\+a,  }\item[{character(len = $\ast$), intent(in)}]{url\+\_\+b }\end{DoxyParamCaption})}



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



References dc\+\_\+types\+::string.


\begin{DoxyCode}
383     \textcolor{comment}{!}
384     \textcolor{comment}{! 1 つ目の引数に与えられる変数 URL と 2 つ目の引数に与えられる}
385     \textcolor{comment}{! 変数 URL とが同じファイルを指しているかどうか判定します。}
386     \textcolor{comment}{! もしも同じファイルであれば <b><tt>.true.</tt></b> を、}
387     \textcolor{comment}{! 異なるファイルであれば <b><tt>.false.</tt></b> を返します。}
388     \textcolor{comment}{!}
389     \textcolor{keywordtype}{use }dc\_string
390     \textcolor{keywordtype}{use }\hyperlink{namespacedc__types}{dc\_types}\textcolor{keywordtype}{, only}: \hyperlink{namespacedc__types_adb76910ff05e3b9fe3436567f8f8dac6}{string}
391     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)} :: url\_a
392     \textcolor{keywordtype}{character(len = *)}, \textcolor{keywordtype}{intent(in)} :: url\_b
393     \textcolor{keywordtype}{character(len = STRING)}        :: filepart\_a
394     \textcolor{keywordtype}{character(len = STRING)}        :: filepart\_b
395     \textcolor{keyword}{call }urlsplit(url\_a, file=filepart\_a)
396     \textcolor{keyword}{call }urlsplit(url\_b, file=filepart\_b)
397     result = (filepart\_a == filepart\_b)
\end{DoxyCode}


\subsection{Variable Documentation}
\mbox{\Hypertarget{namespacedc__url_a3157f15c35d09732b55dfb0f4f52397d}\label{namespacedc__url_a3157f15c35d09732b55dfb0f4f52397d}} 
\index{dc\+\_\+url@{dc\+\_\+url}!gt\+\_\+atmark@{gt\+\_\+atmark}}
\index{gt\+\_\+atmark@{gt\+\_\+atmark}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{gt\+\_\+atmark}{gt\_atmark}}
{\footnotesize\ttfamily character, parameter, public dc\+\_\+url\+::gt\+\_\+atmark = \char`\"{}@\char`\"{}}



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


\begin{DoxyCode}
79   \textcolor{keywordtype}{character}, \textcolor{keywordtype}{public}, \textcolor{keywordtype}{parameter}:: gt\_atmark = \textcolor{stringliteral}{"@"}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_adf1b8d55d944dc6510d8ba57d54bc168}\label{namespacedc__url_adf1b8d55d944dc6510d8ba57d54bc168}} 
\index{dc\+\_\+url@{dc\+\_\+url}!gt\+\_\+circumflex@{gt\+\_\+circumflex}}
\index{gt\+\_\+circumflex@{gt\+\_\+circumflex}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{gt\+\_\+circumflex}{gt\_circumflex}}
{\footnotesize\ttfamily character, parameter, public dc\+\_\+url\+::gt\+\_\+circumflex = \char`\"{}$^\wedge$\char`\"{}}



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


\begin{DoxyCode}
89   \textcolor{keywordtype}{character}, \textcolor{keywordtype}{public}, \textcolor{keywordtype}{parameter}:: gt\_circumflex = \textcolor{stringliteral}{"^"}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_a8a012262cb2d70e929fb1d929c1f5752}\label{namespacedc__url_a8a012262cb2d70e929fb1d929c1f5752}} 
\index{dc\+\_\+url@{dc\+\_\+url}!gt\+\_\+colon@{gt\+\_\+colon}}
\index{gt\+\_\+colon@{gt\+\_\+colon}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{gt\+\_\+colon}{gt\_colon}}
{\footnotesize\ttfamily character, parameter, public dc\+\_\+url\+::gt\+\_\+colon = \char`\"{}\+:\char`\"{}}



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


\begin{DoxyCode}
83   \textcolor{keywordtype}{character}, \textcolor{keywordtype}{public}, \textcolor{keywordtype}{parameter}:: gt\_colon = \textcolor{stringliteral}{":"}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_a61f457425e29d1452036669b43735790}\label{namespacedc__url_a61f457425e29d1452036669b43735790}} 
\index{dc\+\_\+url@{dc\+\_\+url}!gt\+\_\+comma@{gt\+\_\+comma}}
\index{gt\+\_\+comma@{gt\+\_\+comma}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{gt\+\_\+comma}{gt\_comma}}
{\footnotesize\ttfamily character, parameter, public dc\+\_\+url\+::gt\+\_\+comma = \char`\"{},\char`\"{}}



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


\begin{DoxyCode}
85   \textcolor{keywordtype}{character}, \textcolor{keywordtype}{public}, \textcolor{keywordtype}{parameter}:: gt\_comma = \textcolor{stringliteral}{","}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_a7136bff4d1b5152ca579575eb6a99f75}\label{namespacedc__url_a7136bff4d1b5152ca579575eb6a99f75}} 
\index{dc\+\_\+url@{dc\+\_\+url}!gt\+\_\+equal@{gt\+\_\+equal}}
\index{gt\+\_\+equal@{gt\+\_\+equal}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{gt\+\_\+equal}{gt\_equal}}
{\footnotesize\ttfamily character, parameter, public dc\+\_\+url\+::gt\+\_\+equal = \char`\"{}=\char`\"{}}



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


\begin{DoxyCode}
87   \textcolor{keywordtype}{character}, \textcolor{keywordtype}{public}, \textcolor{keywordtype}{parameter}:: gt\_equal = \textcolor{stringliteral}{"="}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_a373b7d2195c21ebf1458e79ad72dce0d}\label{namespacedc__url_a373b7d2195c21ebf1458e79ad72dce0d}} 
\index{dc\+\_\+url@{dc\+\_\+url}!gt\+\_\+plus@{gt\+\_\+plus}}
\index{gt\+\_\+plus@{gt\+\_\+plus}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{gt\+\_\+plus}{gt\_plus}}
{\footnotesize\ttfamily character, parameter, public dc\+\_\+url\+::gt\+\_\+plus = \char`\"{}+\char`\"{}}



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


\begin{DoxyCode}
92   \textcolor{keywordtype}{character}, \textcolor{keywordtype}{public}, \textcolor{keywordtype}{parameter}:: gt\_plus = \textcolor{stringliteral}{"+"}
\end{DoxyCode}
\mbox{\Hypertarget{namespacedc__url_ae3630e89b6faeae074924581df62543b}\label{namespacedc__url_ae3630e89b6faeae074924581df62543b}} 
\index{dc\+\_\+url@{dc\+\_\+url}!gt\+\_\+question@{gt\+\_\+question}}
\index{gt\+\_\+question@{gt\+\_\+question}!dc\+\_\+url@{dc\+\_\+url}}
\subsubsection{\texorpdfstring{gt\+\_\+question}{gt\_question}}
{\footnotesize\ttfamily character, parameter, public dc\+\_\+url\+::gt\+\_\+question = \char`\"{}?\char`\"{}}



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


\begin{DoxyCode}
81   \textcolor{keywordtype}{character}, \textcolor{keywordtype}{public}, \textcolor{keywordtype}{parameter}:: gt\_question = \textcolor{stringliteral}{"?"}
\end{DoxyCode}
