\hypertarget{interfaceut__mpi__module_1_1ut__polmagboundaries}{}\doxysection{ut\+\_\+mpi\+\_\+module\+::ut\+\_\+polmagboundaries Interface Reference}
\label{interfaceut__mpi__module_1_1ut__polmagboundaries}\index{ut\_mpi\_module::ut\_polmagboundaries@{ut\_mpi\_module::ut\_polmagboundaries}}
\doxysubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{interfaceut__mpi__module_1_1ut__polmagboundaries_acad14b74f2666b012654f503f55e8507}{ut\+\_\+polmagboundariestau}} (ut\+\_\+\+P\+OL, new)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


Definition at line 447 of file ut\+\_\+mpi\+\_\+module.\+f90.



\doxysubsection{Member Function/\+Subroutine Documentation}
\mbox{\Hypertarget{interfaceut__mpi__module_1_1ut__polmagboundaries_acad14b74f2666b012654f503f55e8507}\label{interfaceut__mpi__module_1_1ut__polmagboundaries_acad14b74f2666b012654f503f55e8507}} 
\index{ut\_mpi\_module::ut\_polmagboundaries@{ut\_mpi\_module::ut\_polmagboundaries}!ut\_polmagboundariestau@{ut\_polmagboundariestau}}
\index{ut\_polmagboundariestau@{ut\_polmagboundariestau}!ut\_mpi\_module::ut\_polmagboundaries@{ut\_mpi\_module::ut\_polmagboundaries}}
\doxysubsubsection{\texorpdfstring{ut\_polmagboundariestau()}{ut\_polmagboundariestau()}}
{\footnotesize\ttfamily subroutine ut\+\_\+mpi\+\_\+module\+::ut\+\_\+polmagboundaries\+::ut\+\_\+polmagboundariestau (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:\mbox{\hyperlink{namespaceut__mpi__module_a24756c76cd950e046fe1188ccbf151d4}{lm}}), intent(inout)}]{ut\+\_\+\+P\+OL,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 3318 of file ut\+\_\+mpi\+\_\+module.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{3318       \textcolor{comment}{!}}
\DoxyCodeLine{3319       \textcolor{comment}{! 磁場ポロイダルポテンシャルに対して境界条件を適用する.}}
\DoxyCodeLine{3320       \textcolor{comment}{! Chebyshev 空間での境界条件適用}}
\DoxyCodeLine{3321       \textcolor{comment}{!}}
\DoxyCodeLine{3322       \textcolor{comment}{! チェビシェフ空間において境界条件を満たすべく高次の係数を定める方法を}}
\DoxyCodeLine{3323       \textcolor{comment}{! とっている(タウ法). 現在のところ境界物質が非電気伝導体の場合のみ}}
\DoxyCodeLine{3324       \textcolor{comment}{! 対応している. その場合, 磁場ポロイダルポテンシャルの各水平スペクトル}}
\DoxyCodeLine{3325       \textcolor{comment}{! 成分 h にたいして境界条件が与えられ,}}
\DoxyCodeLine{3326       \textcolor{comment}{!}}
\DoxyCodeLine{3327       \textcolor{comment}{!  * 外側境界 : dh/dr + (n+1)h/r = 0}}
\DoxyCodeLine{3328       \textcolor{comment}{!  * 内側境界 : dh/dr -\/ nh/r = 0}}
\DoxyCodeLine{3329       \textcolor{comment}{!}}
\DoxyCodeLine{3330       \textcolor{comment}{! である. ここで n は h の水平全波数である.}}
\DoxyCodeLine{3331       \textcolor{comment}{!}}
\DoxyCodeLine{3332       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}}
\DoxyCodeLine{3333       \textcolor{comment}{!}}
\DoxyCodeLine{3334 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}   :: ut\_POL}
\DoxyCodeLine{3335               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}}
\DoxyCodeLine{3336 }
\DoxyCodeLine{3337       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new}
\DoxyCodeLine{3338               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}}
\DoxyCodeLine{3339               \textcolor{comment}{!     default は false.}}
\DoxyCodeLine{3340 }
\DoxyCodeLine{3341 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu}
\DoxyCodeLine{3342       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp}
\DoxyCodeLine{3343 }
\DoxyCodeLine{3344 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: ut\_I}
\DoxyCodeLine{3345 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_PSI}
\DoxyCodeLine{3346 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_DPSIDR}
\DoxyCodeLine{3347 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}      :: u\_n}
\DoxyCodeLine{3348 }
\DoxyCodeLine{3349       \textcolor{keywordtype}{logical} :: first = .true.}
\DoxyCodeLine{3350       \textcolor{keywordtype}{logical} :: new\_matrix = .false.}
\DoxyCodeLine{3351       \textcolor{keywordtype}{integer}  :: l, n, nn(2)}
\DoxyCodeLine{3352       \textcolor{keywordtype}{save}     :: alu, kp, first}
\DoxyCodeLine{3353 }
\DoxyCodeLine{3354       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{3355          new\_matrix=.false.}
\DoxyCodeLine{3356       \textcolor{keywordflow}{else}}
\DoxyCodeLine{3357          new\_matrix=new}
\DoxyCodeLine{3358 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{3359 }
\DoxyCodeLine{3360       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{3361          first = .false.}
\DoxyCodeLine{3362 }
\DoxyCodeLine{3363          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)}
\DoxyCodeLine{3364          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)}
\DoxyCodeLine{3365          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(ut\_i) ) \textcolor{keyword}{deallocate}(ut\_i)}
\DoxyCodeLine{3366          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_psi) ) \textcolor{keyword}{deallocate}(uz\_psi)}
\DoxyCodeLine{3367          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_dpsidr) ) \textcolor{keyword}{deallocate}(uz\_dpsidr)}
\DoxyCodeLine{3368          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(u\_n) ) \textcolor{keyword}{deallocate}(u\_n)}
\DoxyCodeLine{3369 }
\DoxyCodeLine{3370          \textcolor{keyword}{allocate}(alu(nmc,0:lm,0:lm),kp(nmc,0:lm))}
\DoxyCodeLine{3371          \textcolor{keyword}{allocate}(ut\_i(nmc,0:lm),u\_n(nmc))}
\DoxyCodeLine{3372          \textcolor{keyword}{allocate}(uz\_psi(nmc,0:km),uz\_dpsidr(nmc,0:km))}
\DoxyCodeLine{3373 }
\DoxyCodeLine{3374          \textcolor{keywordflow}{do} n=1,nmc}
\DoxyCodeLine{3375             nn=nm\_l(n)}
\DoxyCodeLine{3376             u\_n(n) = nn(1)}
\DoxyCodeLine{3377 \textcolor{keywordflow}{         enddo}}
\DoxyCodeLine{3378 }
\DoxyCodeLine{3379          \textcolor{keywordflow}{do} l=0,lm}
\DoxyCodeLine{3380             ut\_i = 0.0d0 ; ut\_i(:,l) = 1.0d0}
\DoxyCodeLine{3381             alu(:,:,l) = ut\_i}
\DoxyCodeLine{3382 }
\DoxyCodeLine{3383             uz\_psi = uz\_ut(ut\_i)}
\DoxyCodeLine{3384             uz\_dpsidr = uz\_ut(ut\_drad\_ut(ut\_i))}
\DoxyCodeLine{3385             alu(:,lm-\/1,l) = uz\_dpsidr(:,0) + (u\_n+1) * uz\_psi(:,0)/z\_rad(0)}
\DoxyCodeLine{3386             alu(:,lm,l)   = uz\_dpsidr(:,km) -\/ u\_n * uz\_psi(:,km)/z\_rad(km)}
\DoxyCodeLine{3387 \textcolor{keywordflow}{         enddo}}
\DoxyCodeLine{3388 }
\DoxyCodeLine{3389          \textcolor{keyword}{call }ludecomp(alu,kp)}
\DoxyCodeLine{3390 }
\DoxyCodeLine{3391          \textcolor{keyword}{deallocate}(ut\_i,uz\_psi,uz\_dpsidr,u\_n)}
\DoxyCodeLine{3392 }
\DoxyCodeLine{3393          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'PolmagBoundariesTau'},\&}
\DoxyCodeLine{3394                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})}
\DoxyCodeLine{3395 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{3396 }
\DoxyCodeLine{3397       ut\_pol(:,lm-\/1) = 0.0d0}
\DoxyCodeLine{3398       ut\_pol(:,lm)   = 0.0d0}
\DoxyCodeLine{3399       ut\_pol = lusolve(alu,kp,ut\_pol)}
\DoxyCodeLine{3400 }

\end{DoxyCode}


The documentation for this interface was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
ut\+\_\+mpi\+\_\+module/\mbox{\hyperlink{ut__mpi__module_8f90}{ut\+\_\+mpi\+\_\+module.\+f90}}\end{DoxyCompactItemize}
