\hypertarget{namespaceat__module}{}\section{at\+\_\+module Module Reference}
\label{namespaceat__module}\index{at\+\_\+module@{at\+\_\+module}}


1 次元有限領域\+: チェビシェフ変換  


\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \hyperlink{namespaceat__module_adf63042d0ac9f5a2c17163540839920d}{at\+\_\+initial} (i, k, xmin, xmax)
\begin{DoxyCompactList}\small\item\em チェビシェフ変換の格子点数, 波数, 領域の大きさを設定する. \end{DoxyCompactList}\item 
real(dp) function, dimension(size(at\+\_\+data, 1), 0\+:im), public \hyperlink{namespaceat__module_a216c24fc50973ad591948dfd8193e029}{ag\+\_\+at} (at\+\_\+data)
\begin{DoxyCompactList}\small\item\em チェビシェフデータから格子データへ変換する(2 次元配列用). \end{DoxyCompactList}\item 
real(dp) function, dimension(0\+:im), public \hyperlink{namespaceat__module_aac1b775fe04c1911fa86967c7842c97d}{g\+\_\+t} (t\+\_\+data)
\begin{DoxyCompactList}\small\item\em チェビシェフデータから格子データへ変換する(1 次元配列用). \end{DoxyCompactList}\item 
real(dp) function, dimension(size(ag\+\_\+data, 1), 0\+:km), public \hyperlink{namespaceat__module_aa4c5fab5be3b29b2ed6f52a0a45d9281}{at\+\_\+ag} (ag\+\_\+data)
\begin{DoxyCompactList}\small\item\em 格子データからチェビシェフデータへ変換する(2 次元配列用). \end{DoxyCompactList}\item 
real(dp) function, dimension(0\+:km), public \hyperlink{namespaceat__module_a649cd7872ed585abce2ddced8d9c5a71}{t\+\_\+g} (g\+\_\+data)
\begin{DoxyCompactList}\small\item\em 格子データからチェビシェフデータへ変換する(1 次元配列用). \end{DoxyCompactList}\item 
real(dp) function, dimension(size(at\+\_\+data, 1), 0\+:size(at\+\_\+data, 2) -\/1), public \hyperlink{namespaceat__module_a43d2267dc3e7ea20e35566b97f573415}{at\+\_\+dx\+\_\+at} (at\+\_\+data)
\begin{DoxyCompactList}\small\item\em 入力チェビシェフデータに X 微分を作用する(2 次元配列用). \end{DoxyCompactList}\item 
real(dp) function, dimension(size(t\+\_\+data)), public \hyperlink{namespaceat__module_aff97491f952dd4253f871ad74f33f32f}{t\+\_\+dx\+\_\+t} (t\+\_\+data)
\begin{DoxyCompactList}\small\item\em 入力チェビシェフデータに X 微分を作用する(1 次元配列用). \end{DoxyCompactList}\item 
real(dp) function, dimension(size(ag, 1)), public \hyperlink{namespaceat__module_a00db89b712c0c640080ce42854eefdf0}{a\+\_\+int\+\_\+ag} (ag)
\begin{DoxyCompactList}\small\item\em 1 次元格子点データが並んだ 2 次元配列の積分 \end{DoxyCompactList}\item 
real(dp) function, public \hyperlink{namespaceat__module_a6b950f252e117fa489188b56730df979}{int\+\_\+g} (g)
\begin{DoxyCompactList}\small\item\em 1 次元格子点データの積分 \end{DoxyCompactList}\item 
real(dp) function, dimension(size(ag, 1)), public \hyperlink{namespaceat__module_aa8f7afadb5910577296ebdce343d9916}{a\+\_\+avr\+\_\+ag} (ag)
\begin{DoxyCompactList}\small\item\em 1 次元格子点データが並んだ 2 次元配列の平均 \end{DoxyCompactList}\item 
real(dp) function, public \hyperlink{namespaceat__module_ace71f9c471a9fde3f5a8adc765813078}{avr\+\_\+g} (g)
\begin{DoxyCompactList}\small\item\em 1 次元格子点データの平均 \end{DoxyCompactList}\item 
real(dp) function, public \hyperlink{namespaceat__module_ae9ea43ca3ea4475a7298c766187eb31a}{interpolate\+\_\+t} (t\+\_\+data, xval)
\begin{DoxyCompactList}\small\item\em 1 次元データの補間 \end{DoxyCompactList}\item 
real(dp) function, dimension(size(at\+\_\+data, 1)), public \hyperlink{namespaceat__module_a41ad8e503511fa7a7377f0319f9ab963}{a\+\_\+interpolate\+\_\+at} (at\+\_\+data, xval)
\begin{DoxyCompactList}\small\item\em 1 次元データの並んだ 2次元配列の補間 \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespaceat__module_a88f9892380f46b0ea60921e6299a4cd6}{at\+\_\+boundaries} (at\+\_\+data, cond, values)
\begin{DoxyCompactList}\small\item\em 境界条件の適用(タウ法, 2 次元配列用) \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespaceat__module_acd3cf928b6b072c1142d70b9fa997359}{t\+\_\+boundaries} (t\+\_\+data, cond, values)
\begin{DoxyCompactList}\small\item\em 境界条件の適用(タウ法, 1 次元配列用) 境界条件と両境界での値をオプションで与える. デフォルトは DD, values = 0 \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespaceat__module_a8c785e4ee49d395ecb5300b80b62bc3d}{at\+\_\+boundariesgrid} (at\+\_\+data, cond, values)
\begin{DoxyCompactList}\small\item\em 境界条件の適用(実空間での評価, 2 次元配列用) 境界条件と両境界での値をオプションで与える. デフォルトは DD, values = 0 \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespaceat__module_ae4485e919330b01b25d3fa9416ebea14}{t\+\_\+boundariesgrid} (t\+\_\+data, cond, values)
\begin{DoxyCompactList}\small\item\em 境界条件の適用(タウ法, 1 次元配列用) 境界条件と両境界での値をオプションで与える. デフォルトは DD, values = 0 \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespaceat__module_a050d680de20200ff5926d23922bde5ac}{at\+\_\+finalize}
\begin{DoxyCompactList}\small\item\em モジュールの終了処理(割り付け配列の解放)をおこなう. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
real(dp), dimension(\+:), allocatable, save, public \hyperlink{namespaceat__module_a4a9518475600043a3acd9204812b6735}{g\+\_\+x}
\begin{DoxyCompactList}\small\item\em 格子点座標(\+X)を格納した 1 次元配列 \end{DoxyCompactList}\item 
real(dp), dimension(\+:), allocatable, save, public \hyperlink{namespaceat__module_a2f9dd733cc468808f9356456e4b1c3b4}{g\+\_\+x\+\_\+weight}
\begin{DoxyCompactList}\small\item\em 重み座標を格納した 1 次元配列 \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
1 次元有限領域\+: チェビシェフ変換 

\begin{DoxyAuthor}{Author}
Shin-\/ichi Takehiro, Youhei S\+A\+S\+A\+KI 
\end{DoxyAuthor}
\begin{DoxyCopyright}{Copyright}
Copyright (C) S\+P\+M\+O\+D\+EL Development Group, 2019. License is M\+I\+T/\+X11. see \hyperlink{COPYRIGHT}{C\+O\+P\+Y\+R\+I\+G\+HT} in detail
\end{DoxyCopyright}
1 次元有限領域の下での流体運動をチェビシェフ変換によりスペクトル数値 計算するための Fortran90 関数を提供する.

2 次元データの 1 次元に関して同時にスペクトル計算を実行するための 関数も提供しており, 2, 3 次元領域での計算のベースも提供する.

このモジュールは内部で I\+S\+P\+A\+C\+K3/\+F\+X\+P\+A\+CK の Fortran77 サブルーチンを 呼んでいる. スペクトルデータおよび格子点データの格納方法については I\+S\+P\+A\+C\+K3/\+F\+X\+P\+A\+CK のマニュアルを参照されたい.

\paragraph*{命名法}


\begin{DoxyItemize}
\item 関数名の先頭 ({\ttfamily t\+\_\+}, {\ttfamily g\+\_\+}, {\ttfamily at\+\_\+}, {\ttfamily ag\+\_\+}) は, 返す値の形を示している.
\begin{DoxyItemize}
\item {\ttfamily t\+\_\+} \+:\+: チェビシェフデータ
\item {\ttfamily g\+\_\+} \+:\+: 1 次元格子点データ
\item {\ttfamily at\+\_\+} \+:\+: 1 次元チェビシェフデータが複数並んだ 2 次元データ
\item {\ttfamily ag\+\_\+} \+:\+: 1 次元格子点データが複数並んだ 2 次元データ.
\end{DoxyItemize}
\item 関数名の間の文字列({\ttfamily Dx})は, その関数の作用を表している.
\item 関数名の最後 ({\ttfamily \+\_\+e},{\ttfamily \+\_\+at},{\ttfamily \+\_\+g},{\ttfamily \+\_\+ag}) は, 入力変数の形がチェビシェフデータおよび格子点データであることを示している.
\begin{DoxyItemize}
\item {\ttfamily \+\_\+t} \+:\+: チェビシェフデータ
\item {\ttfamily \+\_\+g} \+:\+: 1 次元格子点データ
\item {\ttfamily \+\_\+at} \+:\+: 1 次元チェビシェフデータが複数並んだ 2 次元データ
\item {\ttfamily \+\_\+ag} \+:\+: 1 次元格子点データが複数並んだ 2 次元データ
\end{DoxyItemize}
\end{DoxyItemize}

\paragraph*{各データの種類の説明}


\begin{DoxyItemize}
\item 以下, {\ttfamily DP = kind(1.\+0D)} である
\item {\ttfamily g} \+: 1 次元格子点データ.
\begin{DoxyItemize}
\item 変数の種類と次元は {\ttfamily real(\+D\+P), dimension(0\+:im)}.
\item {\ttfamily im} は X 座標の格子点数であり, サブルーチン \hyperlink{namespaceat__module_adf63042d0ac9f5a2c17163540839920d}{at\+\_\+initial()} にて あらかじめ設定しておく.
\end{DoxyItemize}
\item {\ttfamily t} \+: チェビシェフデータ.
\begin{DoxyItemize}
\item 変数の種類と次元は {\ttfamily real(\+D\+P), dimension(0\+:km)}.
\item {\ttfamily km} は X 方向の最大波数であり, サブルーチン \hyperlink{namespaceat__module_adf63042d0ac9f5a2c17163540839920d}{at\+\_\+initial()} にて あらかじめ設定しておく.
\end{DoxyItemize}
\item {\ttfamily ag} \+: 1 次元(\+X)格子点データの並んだ 2 次元データ.
\begin{DoxyItemize}
\item 変数の種類と次元は {\ttfamily real(\+D\+P), dimension(\+:,0\+:im)}. 第 2 次元が X 方向を表す.
\end{DoxyItemize}
\item {\ttfamily at} \+: 1 次元チェビシェフデータの並んだ 2 次元データ.
\begin{DoxyItemize}
\item 変数の種類と次元は {\ttfamily real(\+D\+P), dimension(\+:,0\+:km)}. 第 2 次元がスペクトルを表す.
\end{DoxyItemize}
\item {\ttfamily g\+\_\+} で始まる関数が返す値は 1 次元格子点データに同じ.
\item {\ttfamily t\+\_\+} で始まる関数が返す値はチェビシェフデータに同じ.
\item {\ttfamily ag\+\_\+} で始まる関数が返す値は 1 次元格子点データの並んだ 2 次元データに同じ.
\item {\ttfamily at\+\_\+} で始まる関数が返す値は 1 次元チェビシェフデータの並んだ 2 次元データに同じ.
\item チェビシェフデータに対する微分等の作用とは, 対応する格子点データに 微分などを作用させたデータをチェビシェフ変換したもののことである. 
\end{DoxyItemize}

\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespaceat__module_aa8f7afadb5910577296ebdce343d9916}\label{namespaceat__module_aa8f7afadb5910577296ebdce343d9916}} 
\index{at\+\_\+module@{at\+\_\+module}!a\+\_\+avr\+\_\+ag@{a\+\_\+avr\+\_\+ag}}
\index{a\+\_\+avr\+\_\+ag@{a\+\_\+avr\+\_\+ag}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{a\+\_\+avr\+\_\+ag()}{a\_avr\_ag()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(ag,1)), public at\+\_\+module\+::a\+\_\+avr\+\_\+ag (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,0\+:), intent(in)}]{ag }\end{DoxyParamCaption})}



1 次元格子点データが並んだ 2 次元配列の平均 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em ag} & 入力格子点データ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
平均したデータ 
\end{DoxyReturn}


Definition at line 517 of file at\+\_\+module.\+f90.



References a\+\_\+int\+\_\+ag(), and g\+\_\+x\+\_\+weight.


\begin{DoxyCode}
517 
518     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,0:)}, \textcolor{keywordtype}{intent(in)}   :: ag
520     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(ag,1))}         :: a\_avr\_ag
521     a\_avr\_ag = a\_int\_ag(ag)/sum(g\_x\_weight)
522 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=327pt]{namespaceat__module_aa8f7afadb5910577296ebdce343d9916_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceat__module_a00db89b712c0c640080ce42854eefdf0}\label{namespaceat__module_a00db89b712c0c640080ce42854eefdf0}} 
\index{at\+\_\+module@{at\+\_\+module}!a\+\_\+int\+\_\+ag@{a\+\_\+int\+\_\+ag}}
\index{a\+\_\+int\+\_\+ag@{a\+\_\+int\+\_\+ag}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{a\+\_\+int\+\_\+ag()}{a\_int\_ag()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(ag,1)), public at\+\_\+module\+::a\+\_\+int\+\_\+ag (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,0\+:), intent(in)}]{ag }\end{DoxyParamCaption})}



1 次元格子点データが並んだ 2 次元配列の積分 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em ag} & 入力格子点データ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
積分したデータ 
\end{DoxyReturn}


Definition at line 483 of file at\+\_\+module.\+f90.



References g\+\_\+x\+\_\+weight.


\begin{DoxyCode}
483 
484     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,0:)}, \textcolor{keywordtype}{intent(in)}     :: ag
486     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(ag,1))}           :: a\_int\_ag
487 
488     \textcolor{keywordtype}{integer(8)} :: i
489 
490     \textcolor{keywordflow}{if} ( \textcolor{keyword}{size}(ag,2) < im+1 ) \textcolor{keywordflow}{then}
491        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ae\_ag'}, &
492             \textcolor{stringliteral}{'The Grid points of input data too small.'})
493     \textcolor{keywordflow}{elseif} ( \textcolor{keyword}{size}(ag,2) > im+1 ) \textcolor{keywordflow}{then}
494        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'ae\_ag'}, &
495             \textcolor{stringliteral}{'The Grid points of input data too large.'})
496 \textcolor{keywordflow}{    endif}
497 
498     a\_int\_ag = 0.0d0
499     \textcolor{keywordflow}{do} i=0,im
500        a\_int\_ag(:) = a\_int\_ag(:) + ag(:,i)*g\_x\_weight(i)
501 \textcolor{keywordflow}{    enddo}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_a41ad8e503511fa7a7377f0319f9ab963}\label{namespaceat__module_a41ad8e503511fa7a7377f0319f9ab963}} 
\index{at\+\_\+module@{at\+\_\+module}!a\+\_\+interpolate\+\_\+at@{a\+\_\+interpolate\+\_\+at}}
\index{a\+\_\+interpolate\+\_\+at@{a\+\_\+interpolate\+\_\+at}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{a\+\_\+interpolate\+\_\+at()}{a\_interpolate\_at()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(at\+\_\+data,1)), public at\+\_\+module\+::a\+\_\+interpolate\+\_\+at (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,0\+:), intent(in)}]{at\+\_\+data,  }\item[{real(dp), intent(in)}]{xval }\end{DoxyParamCaption})}



1 次元データの並んだ 2次元配列の補間 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em at\+\_\+data} & 入力チェビシェフデータ\\
\hline
\mbox{\tt in}  & {\em xval} & 補間する点の座標\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
補間した結果の値 
\end{DoxyReturn}


Definition at line 576 of file at\+\_\+module.\+f90.



References g\+\_\+x.


\begin{DoxyCode}
576 
577     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,0:)}, \textcolor{keywordtype}{intent(in)} :: at\_data
579     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}                  :: xval
581     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(at\_data,1))}  :: a\_interpolate\_at
582 
583 
584     \textcolor{keywordtype}{integer} :: kmax
585     \textcolor{comment}{! 入力配列の最大次数}
586     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(at\_data,1))}  :: y2, y1, y0
587     \textcolor{keywordtype}{real(DP)}                              :: x
588     \textcolor{comment}{! Crenshow's reccurence formula 計算用変数}
589     \textcolor{keywordtype}{integer} :: k
590     \textcolor{comment}{! DO 文変数}
591 
592     kmax = \textcolor{keyword}{size}(at\_data,2)-1
593 
594     \textcolor{comment}{! x =(xval -(g\_X(0)+g\_X(im))/2 )/(g\_X(0)-g\_X(im))*2}
595     x =(xval -(g\_x(0)+g\_x(im))*0.5d0 )/(g\_x(0)-g\_x(im))*2.0d0
596 
597     y2 = 0.0d0
598     y1 = 0.0d0
599     \textcolor{keywordflow}{do} k=kmax,1,-1
600        y0 = 2.0d0*x*y1 - y2 + at\_data(:,k)
601        y2 = y1
602        y1 = y0
603 \textcolor{keywordflow}{    enddo}
604 
605     \textcolor{comment}{! a\_Interpolate\_at = - y2 + x*y1 + at\_data(:,0)/2}
606     a\_interpolate\_at = - y2 + x*y1 + at\_data(:,0)*0.5d0
607     \textcolor{keywordflow}{if} ( kmax == int(im) ) \textcolor{keywordflow}{then}
608        a\_interpolate\_at = a\_interpolate\_at &
609             & - at\_data(:,kmax)/2.0d0*cos(kmax*acos(x))
610 \textcolor{keywordflow}{    endif}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_a216c24fc50973ad591948dfd8193e029}\label{namespaceat__module_a216c24fc50973ad591948dfd8193e029}} 
\index{at\+\_\+module@{at\+\_\+module}!ag\+\_\+at@{ag\+\_\+at}}
\index{ag\+\_\+at@{ag\+\_\+at}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{ag\+\_\+at()}{ag\_at()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(at\+\_\+data,1),0\+:im), public at\+\_\+module\+::ag\+\_\+at (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,0\+:), intent(in)}]{at\+\_\+data }\end{DoxyParamCaption})}



チェビシェフデータから格子データへ変換する(2 次元配列用). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em at\+\_\+data} & チェビシェフデータ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
格子点データ 
\end{DoxyReturn}


Definition at line 328 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
328 
329     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,0:)}, \textcolor{keywordtype}{intent(in)}     :: at\_data
331     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(at\_data,1),0:im)} :: ag\_at
332 
333     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(at\_data,1),0:2*im-1)} :: y
334     \textcolor{keywordtype}{integer(8)} :: nm, k
335 
336     nm=\textcolor{keyword}{size}(at\_data,1)
337 
338     y = 0.0d0
339     y(:,0) = at\_data(:,0)
340     \textcolor{keywordflow}{do} k=1,min(km,im-1)
341        y(:,2*k)   = at\_data(:,k)
342        y(:,2*k+1) = 0.0d0
343 \textcolor{keywordflow}{    enddo}
344     \textcolor{keywordflow}{if} ( km == im ) \textcolor{keywordflow}{then}
345        y(:,1) = at\_data(:,km)
346 \textcolor{keywordflow}{    endif}
347 
348     \textcolor{keyword}{call }fxrtba(nm,2*im,y,it,t)
349     \textcolor{comment}{! ag\_at = y(:,0:im)/2}
350     ag\_at = y(:,0:im)*0.50d0
351 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_aa4c5fab5be3b29b2ed6f52a0a45d9281}\label{namespaceat__module_aa4c5fab5be3b29b2ed6f52a0a45d9281}} 
\index{at\+\_\+module@{at\+\_\+module}!at\+\_\+ag@{at\+\_\+ag}}
\index{at\+\_\+ag@{at\+\_\+ag}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{at\+\_\+ag()}{at\_ag()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(ag\+\_\+data,1),0\+:km), public at\+\_\+module\+::at\+\_\+ag (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,0\+:), intent(in)}]{ag\+\_\+data }\end{DoxyParamCaption})}



格子データからチェビシェフデータへ変換する(2 次元配列用). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em ag\+\_\+data} & 格子点データ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
チェビシェフデータ 
\end{DoxyReturn}


Definition at line 374 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
374 
375     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,0:)}, \textcolor{keywordtype}{intent(in)}     :: ag\_data
377     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(ag\_data,1),0:km)} :: at\_ag
378 
379     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(ag\_data,1),0:2*im-1)} :: y
380     \textcolor{keywordtype}{integer(8)} :: nm, k
381 
382     nm=\textcolor{keyword}{size}(ag\_data,1)
383 
384     y(:,0) = ag\_data(:,0)
385     \textcolor{keywordflow}{do} k=1,im-1
386        y(:,2*k)   = ag\_data(:,k)
387        y(:,2*k+1) = 0.0d0
388 \textcolor{keywordflow}{    enddo}
389     y(:,1) = ag\_data(:,im)
390 
391     \textcolor{keyword}{call }fxrtba(nm,2*im,y,it,t)
392     at\_ag = y(:,0:km)/im
393 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_a88f9892380f46b0ea60921e6299a4cd6}\label{namespaceat__module_a88f9892380f46b0ea60921e6299a4cd6}} 
\index{at\+\_\+module@{at\+\_\+module}!at\+\_\+boundaries@{at\+\_\+boundaries}}
\index{at\+\_\+boundaries@{at\+\_\+boundaries}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{at\+\_\+boundaries()}{at\_boundaries()}}
{\footnotesize\ttfamily subroutine, public at\+\_\+module\+::at\+\_\+boundaries (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,\+:), intent(inout)}]{at\+\_\+data,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{real(dp), dimension(\+:,\+:), intent(in), optional}]{values }\end{DoxyParamCaption})}



境界条件の適用(タウ法, 2 次元配列用) 

境界条件と両境界での値をオプションで与える. デフォルトは DD, values = 0


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em at\+\_\+data} & 境界条件を適用するチェビシェフデータ(m,0\+:km)\\
\hline
\mbox{\tt in}  & {\em cond} & 境界条件.
\begin{DoxyItemize}
\item DD \+: 両端ディリクレ
\item DN \+: 上端ディリクレ, 下端ノイマン
\item ND \+: 上端ノイマン, 下端ディリクレ
\item NN \+: 両端ノイマン
\end{DoxyItemize}\\
\hline
\mbox{\tt in}  & {\em values} & 境界値(m,2) \\
\hline
\end{DoxyParams}


Definition at line 619 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
619 
620     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(INOUT)}                  :: at\_data(:,:)
626     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional}  :: cond
628     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: values
629 
630     \textcolor{keywordtype}{real(DP)}          :: bcvalues(size(at\_data),2)
631     \textcolor{keywordtype}{character(len=2)} :: bc
632 
633     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(cond) ) \textcolor{keywordflow}{then}
634        bc = cond
635     \textcolor{keywordflow}{else}
636        bc = \textcolor{stringliteral}{'DD'}
637 \textcolor{keywordflow}{    endif}
638 
639     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
640        bcvalues = values
641     \textcolor{keywordflow}{else}
642        bcvalues = 0.0d0
643 \textcolor{keywordflow}{    endif}
644     \textcolor{keywordflow}{select case}(bc)
645     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'})
646       \textcolor{keyword}{call }at\_boundaries\_dd(at\_data,bcvalues)
647     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'})
648       \textcolor{keyword}{call }at\_boundaries\_dn(at\_data,bcvalues)
649     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'})
650       \textcolor{keyword}{call }at\_boundaries\_nd(at\_data,bcvalues)
651     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'})
652       \textcolor{keyword}{call }at\_boundaries\_nn(at\_data,bcvalues)
653 \textcolor{keywordflow}{    case default}
654       \textcolor{keyword}{call }at\_boundaries\_dd(at\_data,bcvalues)
655 \textcolor{keywordflow}{    end select}
656 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_a8c785e4ee49d395ecb5300b80b62bc3d}\label{namespaceat__module_a8c785e4ee49d395ecb5300b80b62bc3d}} 
\index{at\+\_\+module@{at\+\_\+module}!at\+\_\+boundariesgrid@{at\+\_\+boundariesgrid}}
\index{at\+\_\+boundariesgrid@{at\+\_\+boundariesgrid}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{at\+\_\+boundariesgrid()}{at\_boundariesgrid()}}
{\footnotesize\ttfamily subroutine, public at\+\_\+module\+::at\+\_\+boundariesgrid (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,\+:), intent(inout)}]{at\+\_\+data,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{real(dp), dimension(\+:,\+:), intent(in), optional}]{values }\end{DoxyParamCaption})}



境界条件の適用(実空間での評価, 2 次元配列用) 境界条件と両境界での値をオプションで与える. デフォルトは DD, values = 0 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em at\+\_\+data} & 境界条件を適用するチェビシェフデータ(m,0\+:km)\\
\hline
\mbox{\tt in}  & {\em cond} & 境界条件.
\begin{DoxyItemize}
\item DD \+: 両端ディリクレ
\item DN \+: 上端ディリクレ, 下端ノイマン
\item ND \+: 上端ノイマン, 下端ディリクレ
\item NN \+: 両端ノイマン
\end{DoxyItemize}\\
\hline
\mbox{\tt in}  & {\em values} & 境界値(m,2) \\
\hline
\end{DoxyParams}


Definition at line 711 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
711 
712     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(INOUT)}                  :: at\_data(:,:)
718     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional}  :: cond
720     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: values
721 
722     \textcolor{keywordtype}{real(DP)}          :: bcvalues(size(at\_data),2)
723     \textcolor{keywordtype}{character(len=2)} :: bc
724 
725     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(cond) ) \textcolor{keywordflow}{then}
726        bc = cond
727     \textcolor{keywordflow}{else}
728        bc = \textcolor{stringliteral}{'DD'}
729 \textcolor{keywordflow}{    endif}
730 
731     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
732        bcvalues = values
733     \textcolor{keywordflow}{else}
734        bcvalues = 0.0d0
735 \textcolor{keywordflow}{    endif}
736 
737     \textcolor{keywordflow}{select case}(bc)
738     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'})
739       \textcolor{keyword}{call }at\_boundariesgrid\_dd(at\_data,bcvalues)
740     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'})
741       \textcolor{keyword}{call }at\_boundariesgrid\_dn(at\_data,bcvalues)
742     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'})
743       \textcolor{keyword}{call }at\_boundariesgrid\_nd(at\_data,bcvalues)
744     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'})
745       \textcolor{keyword}{call }at\_boundariesgrid\_nn(at\_data,bcvalues)
746 \textcolor{keywordflow}{    end select}
747 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_a43d2267dc3e7ea20e35566b97f573415}\label{namespaceat__module_a43d2267dc3e7ea20e35566b97f573415}} 
\index{at\+\_\+module@{at\+\_\+module}!at\+\_\+dx\+\_\+at@{at\+\_\+dx\+\_\+at}}
\index{at\+\_\+dx\+\_\+at@{at\+\_\+dx\+\_\+at}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{at\+\_\+dx\+\_\+at()}{at\_dx\_at()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(at\+\_\+data,1),0\+:size(at\+\_\+data,2)-\/1), public at\+\_\+module\+::at\+\_\+dx\+\_\+at (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,0\+:), intent(in)}]{at\+\_\+data }\end{DoxyParamCaption})}



入力チェビシェフデータに X 微分を作用する(2 次元配列用). 

チェビシェフデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのチェビシェフ変換のことである.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em at\+\_\+data} & 入力チェビシェフデータ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
チェビシェフデータの X 微分 
\end{DoxyReturn}


Definition at line 420 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
420 
421     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,0:)}, \textcolor{keywordtype}{intent(in)}                    :: at\_data
423     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(at\_data,1),0:size(at\_data,2)-1)} :: at\_dx\_at
424 
425     \textcolor{keywordtype}{integer(8)} :: m, k
426     \textcolor{keywordtype}{integer(8)} :: nm, kmax
427 
428     nm=\textcolor{keyword}{size}(at\_data,1)
429     kmax=\textcolor{keyword}{size}(at\_data,2)-1
430 
431     \textcolor{comment}{! TODO: loop 併合できないか?}
432     \textcolor{keywordflow}{if} ( kmax == im ) \textcolor{keywordflow}{then}
433        \textcolor{keywordflow}{do} m=1,nm
434           at\_dx\_at(m,kmax)   = 0.0d0
435           \textcolor{comment}{! at\_Dx\_at(m,kmax-1) = 2.0D0 * km * at\_data(m,kmax) /2}
436           at\_dx\_at(m,kmax-1) = 2.0d0 * km * at\_data(m,kmax)* 0.5d0
437 \textcolor{keywordflow}{       enddo}
438     \textcolor{keywordflow}{else}
439        \textcolor{keywordflow}{do} m=1,nm
440           at\_dx\_at(m,kmax)   = 0.0d0
441           \textcolor{comment}{! スタートはグリッド対応最大波数未満. Factor 1/2 不要}
442           at\_dx\_at(m,kmax-1) = 2.0d0 * km * at\_data(m,kmax)
443 \textcolor{keywordflow}{       enddo}
444 \textcolor{keywordflow}{    endif}
445 
446     \textcolor{keywordflow}{do} k=kmax-2,0,-1
447        \textcolor{keywordflow}{do} m=1,nm
448           at\_dx\_at(m,k) = at\_dx\_at(m,k+2) + 2.0d0*(k+1)*at\_data(m,k+1)
449 \textcolor{keywordflow}{       enddo}
450 \textcolor{keywordflow}{    enddo}
451 
452     \textcolor{keywordflow}{do} k=0,kmax
453        \textcolor{keywordflow}{do} m=1,nm
454           at\_dx\_at(m,k) = 2.0d0/xl * at\_dx\_at(m,k)
455 \textcolor{keywordflow}{       enddo}
456 \textcolor{keywordflow}{    enddo}
457 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_a050d680de20200ff5926d23922bde5ac}\label{namespaceat__module_a050d680de20200ff5926d23922bde5ac}} 
\index{at\+\_\+module@{at\+\_\+module}!at\+\_\+finalize@{at\+\_\+finalize}}
\index{at\+\_\+finalize@{at\+\_\+finalize}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{at\+\_\+finalize()}{at\_finalize()}}
{\footnotesize\ttfamily subroutine, public at\+\_\+module\+::at\+\_\+finalize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



モジュールの終了処理(割り付け配列の解放)をおこなう. 



Definition at line 796 of file at\+\_\+module.\+f90.



References ag\+\_\+at(), at\+\_\+dx\+\_\+at(), g\+\_\+x, and g\+\_\+x\+\_\+weight.


\begin{DoxyCode}
796     \textcolor{keywordflow}{if} ( .not. at\_initialize ) \textcolor{keywordflow}{then}
797       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'at\_Finalize'},&
798         \textcolor{stringliteral}{'at\_module not initialized yet'})
799       \textcolor{keywordflow}{return}
800 \textcolor{keywordflow}{    endif}
801 
802     \textcolor{keyword}{deallocate}(t)                  \textcolor{comment}{! 変換用配列}
803     \textcolor{keyword}{deallocate}(it)                 \textcolor{comment}{! 変換用配列}
804     \textcolor{keyword}{deallocate}(g\_x)
805     \textcolor{keyword}{deallocate}(g\_x\_weight)         \textcolor{comment}{! 格子点座標格納配列}
806 
807     at\_initialize = .false.
808 
809     at\_boundariestau\_dd\_first = .true.
810     at\_boundariestau\_dn\_first = .true.
811     at\_boundariestau\_nd\_first = .true.
812     at\_boundariestau\_nn\_first = .true.
813     at\_boundariesgrid\_dd\_first = .true.
814     at\_boundariesgrid\_dn\_first = .true.
815     at\_boundariesgrid\_nd\_first = .true.
816     at\_boundariesgrid\_nn\_first = .true.
817 
818     \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'at\_Finalize'},&
819          & \textcolor{stringliteral}{'at\_module (2019/09/29) is finalized'})
820 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=333pt]{namespaceat__module_a050d680de20200ff5926d23922bde5ac_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceat__module_adf63042d0ac9f5a2c17163540839920d}\label{namespaceat__module_adf63042d0ac9f5a2c17163540839920d}} 
\index{at\+\_\+module@{at\+\_\+module}!at\+\_\+initial@{at\+\_\+initial}}
\index{at\+\_\+initial@{at\+\_\+initial}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{at\+\_\+initial()}{at\_initial()}}
{\footnotesize\ttfamily subroutine, public at\+\_\+module\+::at\+\_\+initial (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{i,  }\item[{integer, intent(in)}]{k,  }\item[{real(dp), intent(in)}]{xmin,  }\item[{real(dp), intent(in)}]{xmax }\end{DoxyParamCaption})}



チェビシェフ変換の格子点数, 波数, 領域の大きさを設定する. 

他の関数や変数を呼ぶ前に, 最初にこのサブルーチンを呼んで 初期設定をしなければならない.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em i} & 格子点数\\
\hline
\mbox{\tt in}  & {\em k} & 切断波数\\
\hline
\mbox{\tt in}  & {\em xmin} & 座標の範囲\\
\hline
\mbox{\tt in}  & {\em xmax} & 座標の範囲 \\
\hline
\end{DoxyParams}


Definition at line 268 of file at\+\_\+module.\+f90.



References g\+\_\+x, and g\+\_\+x\+\_\+weight.


\begin{DoxyCode}
268 
269     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: i
271     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: k
273     \textcolor{keywordtype}{real(DP)},\textcolor{keywordtype}{intent(in)} :: xmin, xmax
274     \textcolor{keywordtype}{integer(8)} :: ii,kk
275 
276     im=i
277     km=k
278     xl = xmax-xmin
279 
280     \textcolor{keywordflow}{if} ( im <= 0 .or. km <= 0 ) \textcolor{keywordflow}{then}
281        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'at\_initial'}, &
282             & \textcolor{stringliteral}{'Number of grid points and waves should be positive'})
283     \textcolor{keywordflow}{elseif} ( mod(im,2\_8) /= 0 ) \textcolor{keywordflow}{then}
284        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'at\_initial'}, &
285             & \textcolor{stringliteral}{'Number of grid points should be even'})
286     \textcolor{keywordflow}{elseif} ( km > im ) \textcolor{keywordflow}{then}
287        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'at\_initial'}, &
288             & \textcolor{stringliteral}{'KM shoud be less equal IM'})
289 \textcolor{keywordflow}{    endif}
290 
291     \textcolor{keyword}{allocate}(it(im),t(3*im))
292     \textcolor{keyword}{call }fxrini(2*im,it,t)
293 
294     \textcolor{keyword}{allocate}(g\_x(0:im))
295     \textcolor{keywordflow}{do} ii=0,im
296        g\_x(ii) = (xmax+xmin)/2 + xl/2 * cos(pi*ii/im)
297 \textcolor{keywordflow}{    end do}
298 
299     \textcolor{keyword}{allocate}(g\_x\_weight(0:im))
300 
301     \textcolor{keywordflow}{do} ii=0,im
302        g\_x\_weight(ii) = 1.0d0
303        \textcolor{keywordflow}{do} kk=2,km,2
304           g\_x\_weight(ii) = g\_x\_weight(ii) &
305                + 2.0d0/(1.0d0 - kk**2) * cos(kk*ii*pi/im)
306 \textcolor{keywordflow}{       enddo}
307        \textcolor{comment}{! 最後の和は factor 1/2.}
308        \textcolor{keywordflow}{if} ( (km == im) .and. (mod(im,2\_8) == 0) ) \textcolor{keywordflow}{then}
309           g\_x\_weight(ii) = g\_x\_weight(ii) &
310                - 1.0d0/(1.0d0 - km**2)* cos(km*ii*pi/im)
311 \textcolor{keywordflow}{       endif}
312        g\_x\_weight(ii) = 2.0d0/im * g\_x\_weight(ii) * (xl/2.0d0)
313 \textcolor{keywordflow}{    enddo}
314     \textcolor{comment}{! g\_X\_Weight(0)  = g\_X\_Weight(0) / 2}
315     \textcolor{comment}{! g\_X\_Weight(im) = g\_X\_Weight(im) / 2}
316     g\_x\_weight(0)  = g\_x\_weight(0) * 0.5d0
317     g\_x\_weight(im) = g\_x\_weight(im) * 0.5d0
318 
319     at\_initialize = .true.
320 
321     \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'at\_initial'},&
322          & \textcolor{stringliteral}{'at\_module (2019/09/28) is initialized'})
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_ace71f9c471a9fde3f5a8adc765813078}\label{namespaceat__module_ace71f9c471a9fde3f5a8adc765813078}} 
\index{at\+\_\+module@{at\+\_\+module}!avr\+\_\+g@{avr\+\_\+g}}
\index{avr\+\_\+g@{avr\+\_\+g}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{avr\+\_\+g()}{avr\_g()}}
{\footnotesize\ttfamily real(dp) function, public at\+\_\+module\+::avr\+\_\+g (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im), intent(in)}]{g }\end{DoxyParamCaption})}



1 次元格子点データの平均 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em g} & 格子点データ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
積分値 
\end{DoxyReturn}


Definition at line 528 of file at\+\_\+module.\+f90.



References g\+\_\+x\+\_\+weight, and int\+\_\+g().


\begin{DoxyCode}
528 
529     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im)}, \textcolor{keywordtype}{intent(in)}   :: g
531     \textcolor{keywordtype}{real(DP)}                                :: avr\_g
532 
533     avr\_g = int\_g(g)/sum(g\_x\_weight)
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=297pt]{namespaceat__module_ace71f9c471a9fde3f5a8adc765813078_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceat__module_aac1b775fe04c1911fa86967c7842c97d}\label{namespaceat__module_aac1b775fe04c1911fa86967c7842c97d}} 
\index{at\+\_\+module@{at\+\_\+module}!g\+\_\+t@{g\+\_\+t}}
\index{g\+\_\+t@{g\+\_\+t}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{g\+\_\+t()}{g\_t()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im), public at\+\_\+module\+::g\+\_\+t (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(in)}]{t\+\_\+data }\end{DoxyParamCaption})}



チェビシェフデータから格子データへ変換する(1 次元配列用). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em t\+\_\+data} & チェビシェフデータ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
格子点データ 
\end{DoxyReturn}


Definition at line 357 of file at\+\_\+module.\+f90.



References ag\+\_\+at().


\begin{DoxyCode}
357 
358     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{intent(in)}  :: t\_data
360     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im)}           :: g\_t
361 
362     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(1,size(t\_data))} :: t\_work
363     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(1,0:im)}         :: g\_work
364 
365     t\_work(1,:) = t\_data
366     g\_work = ag\_at(t\_work)
367     g\_t = g\_work(1,:)
368 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=289pt]{namespaceat__module_aac1b775fe04c1911fa86967c7842c97d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceat__module_a6b950f252e117fa489188b56730df979}\label{namespaceat__module_a6b950f252e117fa489188b56730df979}} 
\index{at\+\_\+module@{at\+\_\+module}!int\+\_\+g@{int\+\_\+g}}
\index{int\+\_\+g@{int\+\_\+g}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{int\+\_\+g()}{int\_g()}}
{\footnotesize\ttfamily real(dp) function, public at\+\_\+module\+::int\+\_\+g (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im), intent(in)}]{g }\end{DoxyParamCaption})}



1 次元格子点データの積分 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em g} & 格子点データ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
積分値 
\end{DoxyReturn}


Definition at line 507 of file at\+\_\+module.\+f90.



References g\+\_\+x\+\_\+weight.


\begin{DoxyCode}
507 
508     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im)}, \textcolor{keywordtype}{intent(in)}   :: g
510     \textcolor{keywordtype}{real(DP)}                                :: int\_g
511     int\_g = sum(g*g\_x\_weight)
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_ae9ea43ca3ea4475a7298c766187eb31a}\label{namespaceat__module_ae9ea43ca3ea4475a7298c766187eb31a}} 
\index{at\+\_\+module@{at\+\_\+module}!interpolate\+\_\+t@{interpolate\+\_\+t}}
\index{interpolate\+\_\+t@{interpolate\+\_\+t}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{interpolate\+\_\+t()}{interpolate\_t()}}
{\footnotesize\ttfamily real(dp) function, public at\+\_\+module\+::interpolate\+\_\+t (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:), intent(in)}]{t\+\_\+data,  }\item[{real(dp), intent(in)}]{xval }\end{DoxyParamCaption})}



1 次元データの補間 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em t\+\_\+data} & 入力チェビシェフデータ\\
\hline
\mbox{\tt in}  & {\em xval} & 補間する点の座標\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
補間した結果の値 
\end{DoxyReturn}


Definition at line 539 of file at\+\_\+module.\+f90.



References g\+\_\+x.


\begin{DoxyCode}
539 
540     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:)}, \textcolor{keywordtype}{intent(in)}  :: t\_data
542     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}                 :: xval
544     \textcolor{keywordtype}{real(DP)}                             :: interpolate\_t
545 
546     \textcolor{keywordtype}{integer} :: kmax
547     \textcolor{comment}{! Crenshow's reccurence formula 計算用変数}
548     \textcolor{keywordtype}{real(DP)} :: y2, y1, y0, x
549     \textcolor{keywordtype}{integer} :: k
550     \textcolor{comment}{! DO 文変数}
551 
552     kmax = \textcolor{keyword}{size}(t\_data)-1
553 
554     \textcolor{comment}{! x =(xval -(g\_X(0)+g\_X(im))/2 )/(g\_X(0)-g\_X(im))*2}
555     x =(xval -(g\_x(0)+g\_x(im))*0.50d0 )/(g\_x(0)-g\_x(im))*2.0d0
556 
557     y2 = 0.0d0
558     y1 = 0.0d0
559     \textcolor{keywordflow}{do} k=kmax,1,-1
560        y0 = 2.0d0*x*y1 - y2 + t\_data(k)
561        y2 = y1
562        y1 = y0
563 \textcolor{keywordflow}{    enddo}
564 
565     \textcolor{comment}{! Interpolate\_t = - y2 + x*y1 + t\_data(0)/2}
566     interpolate\_t = - y2 + x*y1 + t\_data(0)*0.5d0
567     \textcolor{keywordflow}{if} ( kmax == int(im) ) \textcolor{keywordflow}{then}
568        interpolate\_t = interpolate\_t -t\_data(kmax)/2.0d0*cos(kmax*acos(x))
569 \textcolor{keywordflow}{    endif}
570 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_acd3cf928b6b072c1142d70b9fa997359}\label{namespaceat__module_acd3cf928b6b072c1142d70b9fa997359}} 
\index{at\+\_\+module@{at\+\_\+module}!t\+\_\+boundaries@{t\+\_\+boundaries}}
\index{t\+\_\+boundaries@{t\+\_\+boundaries}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{t\+\_\+boundaries()}{t\_boundaries()}}
{\footnotesize\ttfamily subroutine, public at\+\_\+module\+::t\+\_\+boundaries (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(inout)}]{t\+\_\+data,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{real(dp), dimension(2), intent(in), optional}]{values }\end{DoxyParamCaption})}



境界条件の適用(タウ法, 1 次元配列用) 境界条件と両境界での値をオプションで与える. デフォルトは DD, values = 0 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em t\+\_\+data} & 境界条件を適用するチェビシェフデータ(0\+:km)\\
\hline
\mbox{\tt in}  & {\em cond} & 境界条件.
\begin{DoxyItemize}
\item DD \+: 両端ディリクレ
\item DN \+: 上端ディリクレ, 下端ノイマン
\item ND \+: 上端ノイマン, 下端ディリクレ
\item NN \+: 両端ノイマン
\end{DoxyItemize}\\
\hline
\mbox{\tt in}  & {\em values} & 境界値(2) \\
\hline
\end{DoxyParams}


Definition at line 664 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
664 
665     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(INOUT)}                  :: t\_data(:)
671     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional}  :: cond
673     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: values
674 
675     \textcolor{keywordtype}{real(DP)}          :: bcvalues(2)
676     \textcolor{keywordtype}{character(len=2)} :: bc
677 
678 
679     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(cond) ) \textcolor{keywordflow}{then}
680       bc = cond
681     \textcolor{keywordflow}{else}
682       bc = \textcolor{stringliteral}{'DD'}
683 \textcolor{keywordflow}{    endif}
684 
685     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
686       bcvalues = values
687     \textcolor{keywordflow}{else}
688       bcvalues = 0.0d0
689 \textcolor{keywordflow}{    endif}
690 
691     \textcolor{keywordflow}{select case}(bc)
692     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'} )
693       \textcolor{keyword}{call }at\_boundaries\_dd(t\_data,bcvalues)
694     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'} )
695       \textcolor{keyword}{call }at\_boundaries\_dn(t\_data,bcvalues)
696     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'} )
697       \textcolor{keyword}{call }at\_boundaries\_nd(t\_data,bcvalues)
698     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'} )
699       \textcolor{keyword}{call }at\_boundaries\_nn(t\_data,bcvalues)
700 \textcolor{keywordflow}{    case default}
701       \textcolor{keyword}{call }at\_boundaries\_dd(t\_data,bcvalues)
702 \textcolor{keywordflow}{    end select}
703 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_ae4485e919330b01b25d3fa9416ebea14}\label{namespaceat__module_ae4485e919330b01b25d3fa9416ebea14}} 
\index{at\+\_\+module@{at\+\_\+module}!t\+\_\+boundariesgrid@{t\+\_\+boundariesgrid}}
\index{t\+\_\+boundariesgrid@{t\+\_\+boundariesgrid}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{t\+\_\+boundariesgrid()}{t\_boundariesgrid()}}
{\footnotesize\ttfamily subroutine, public at\+\_\+module\+::t\+\_\+boundariesgrid (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(inout)}]{t\+\_\+data,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{real(dp), dimension(2), intent(in), optional}]{values }\end{DoxyParamCaption})}



境界条件の適用(タウ法, 1 次元配列用) 境界条件と両境界での値をオプションで与える. デフォルトは DD, values = 0 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em t\+\_\+data} & 境界条件を適用するチェビシェフデータ(0\+:km)\\
\hline
\mbox{\tt in}  & {\em cond} & 境界条件.
\begin{DoxyItemize}
\item DD \+: 両端ディリクレ
\item DN \+: 上端ディリクレ, 下端ノイマン
\item ND \+: 上端ノイマン, 下端ディリクレ
\item NN \+: 両端ノイマン
\end{DoxyItemize}\\
\hline
\mbox{\tt in}  & {\em values} & 境界値(2) \\
\hline
\end{DoxyParams}


Definition at line 755 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
755 
756     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(INOUT)}                  :: t\_data(:)
762     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional}  :: cond
764     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: values
765 
766     \textcolor{keywordtype}{real(DP)}          :: bcvalues(2)
767     \textcolor{keywordtype}{character(len=2)} :: bc
768 
769     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(cond) ) \textcolor{keywordflow}{then}
770        bc = cond
771     \textcolor{keywordflow}{else}
772        bc = \textcolor{stringliteral}{'DD'}
773 \textcolor{keywordflow}{    endif}
774 
775     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
776        bcvalues = values
777     \textcolor{keywordflow}{else}
778        bcvalues = 0.0d0
779 \textcolor{keywordflow}{    endif}
780     \textcolor{keywordflow}{select case}(bc)
781     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'})
782       \textcolor{keyword}{call }at\_boundariesgrid\_dd(t\_data,bcvalues)
783     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'})
784       \textcolor{keyword}{call }at\_boundariesgrid\_dn(t\_data,bcvalues)
785     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'})
786       \textcolor{keyword}{call }at\_boundariesgrid\_nd(t\_data,bcvalues)
787     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'})
788       \textcolor{keyword}{call }at\_boundariesgrid\_nn(t\_data,bcvalues)
789 \textcolor{keywordflow}{    end select}
790 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_aff97491f952dd4253f871ad74f33f32f}\label{namespaceat__module_aff97491f952dd4253f871ad74f33f32f}} 
\index{at\+\_\+module@{at\+\_\+module}!t\+\_\+dx\+\_\+t@{t\+\_\+dx\+\_\+t}}
\index{t\+\_\+dx\+\_\+t@{t\+\_\+dx\+\_\+t}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{t\+\_\+dx\+\_\+t()}{t\_dx\_t()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(t\+\_\+data)), public at\+\_\+module\+::t\+\_\+dx\+\_\+t (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(in)}]{t\+\_\+data }\end{DoxyParamCaption})}



入力チェビシェフデータに X 微分を作用する(1 次元配列用). 

チェビシェフデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのチェビシェフ変換のことである.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em t\+\_\+data} & 入力チェビシェフデータ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
チェビシェフデータの X 微分 
\end{DoxyReturn}


Definition at line 467 of file at\+\_\+module.\+f90.



References at\+\_\+dx\+\_\+at().


\begin{DoxyCode}
467 
468     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{intent(in)}   :: t\_data
470     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(size(t\_data))}    :: t\_dx\_t
471 
472     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(1,size(t\_data))}  :: at\_work
473 
474     at\_work(1,:) = t\_data
475     at\_work = at\_dx\_at(at\_work)
476     t\_dx\_t = at\_work(1,:)
477 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=316pt]{namespaceat__module_aff97491f952dd4253f871ad74f33f32f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceat__module_a649cd7872ed585abce2ddced8d9c5a71}\label{namespaceat__module_a649cd7872ed585abce2ddced8d9c5a71}} 
\index{at\+\_\+module@{at\+\_\+module}!t\+\_\+g@{t\+\_\+g}}
\index{t\+\_\+g@{t\+\_\+g}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{t\+\_\+g()}{t\_g()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:km), public at\+\_\+module\+::t\+\_\+g (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(in)}]{g\+\_\+data }\end{DoxyParamCaption})}



格子データからチェビシェフデータへ変換する(1 次元配列用). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em g\+\_\+data} & 格子点データ\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
チェビシェフデータ 
\end{DoxyReturn}


Definition at line 399 of file at\+\_\+module.\+f90.



References at\+\_\+ag().


\begin{DoxyCode}
399 
400     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{intent(in)}     :: g\_data
402     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:km)}              :: t\_g
403 
404 
405     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(1,size(g\_data))} :: ag\_work
406     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(1,0:km)}         :: at\_work
407 
408     ag\_work(1,:) = g\_data
409     at\_work = at\_ag(ag\_work)
410     t\_g = at\_work(1,:)
411 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=289pt]{namespaceat__module_a649cd7872ed585abce2ddced8d9c5a71_cgraph}
\end{center}
\end{figure}


\subsection{Variable Documentation}
\mbox{\Hypertarget{namespaceat__module_a4a9518475600043a3acd9204812b6735}\label{namespaceat__module_a4a9518475600043a3acd9204812b6735}} 
\index{at\+\_\+module@{at\+\_\+module}!g\+\_\+x@{g\+\_\+x}}
\index{g\+\_\+x@{g\+\_\+x}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{g\+\_\+x}{g\_x}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, save, public at\+\_\+module\+::g\+\_\+x}



格子点座標(\+X)を格納した 1 次元配列 



Definition at line 218 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
218   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable} :: g\_x(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespaceat__module_a2f9dd733cc468808f9356456e4b1c3b4}\label{namespaceat__module_a2f9dd733cc468808f9356456e4b1c3b4}} 
\index{at\+\_\+module@{at\+\_\+module}!g\+\_\+x\+\_\+weight@{g\+\_\+x\+\_\+weight}}
\index{g\+\_\+x\+\_\+weight@{g\+\_\+x\+\_\+weight}!at\+\_\+module@{at\+\_\+module}}
\subsubsection{\texorpdfstring{g\+\_\+x\+\_\+weight}{g\_x\_weight}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, save, public at\+\_\+module\+::g\+\_\+x\+\_\+weight}



重み座標を格納した 1 次元配列 



Definition at line 220 of file at\+\_\+module.\+f90.


\begin{DoxyCode}
220   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable} :: g\_x\_weight(:)
\end{DoxyCode}
