\hypertarget{interfaceut__mpi__module_1_1ut__laplapol2pol__ut}{}\doxysection{ut\+\_\+mpi\+\_\+module\+::ut\+\_\+laplapol2pol\+\_\+ut Interface Reference}
\label{interfaceut__mpi__module_1_1ut__laplapol2pol__ut}\index{ut\_mpi\_module::ut\_laplapol2pol\_ut@{ut\_mpi\_module::ut\_laplapol2pol\_ut}}
\doxysubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
real(dp) function, dimension(nmc, 0\+:\mbox{\hyperlink{namespaceut__mpi__module_a24756c76cd950e046fe1188ccbf151d4}{lm}}) \mbox{\hyperlink{interfaceut__mpi__module_1_1ut__laplapol2pol__ut_a39c2439f9db58712558dadd810cd2491}{ut\+\_\+laplapol2poltau\+\_\+ut}} (ut, cond, new)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


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



\doxysubsection{Member Function/\+Subroutine Documentation}
\mbox{\Hypertarget{interfaceut__mpi__module_1_1ut__laplapol2pol__ut_a39c2439f9db58712558dadd810cd2491}\label{interfaceut__mpi__module_1_1ut__laplapol2pol__ut_a39c2439f9db58712558dadd810cd2491}} 
\index{ut\_mpi\_module::ut\_laplapol2pol\_ut@{ut\_mpi\_module::ut\_laplapol2pol\_ut}!ut\_laplapol2poltau\_ut@{ut\_laplapol2poltau\_ut}}
\index{ut\_laplapol2poltau\_ut@{ut\_laplapol2poltau\_ut}!ut\_mpi\_module::ut\_laplapol2pol\_ut@{ut\_mpi\_module::ut\_laplapol2pol\_ut}}
\doxysubsubsection{\texorpdfstring{ut\_laplapol2poltau\_ut()}{ut\_laplapol2poltau\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:\mbox{\hyperlink{namespaceut__mpi__module_a24756c76cd950e046fe1188ccbf151d4}{lm}}) ut\+\_\+mpi\+\_\+module\+::ut\+\_\+laplapol2pol\+\_\+ut\+::ut\+\_\+laplapol2poltau\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:\mbox{\hyperlink{namespaceut__mpi__module_a24756c76cd950e046fe1188ccbf151d4}{lm}}), intent(in)}]{ut,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



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


\begin{DoxyCode}{0}
\DoxyCodeLine{2883       \textcolor{comment}{!}}
\DoxyCodeLine{2884       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを▽\string^2Φから計算する.}}
\DoxyCodeLine{2885       \textcolor{comment}{! チェビシェフタウ法で境界条件を適用している.}}
\DoxyCodeLine{2886       \textcolor{comment}{!}}
\DoxyCodeLine{2887       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを f = ▽\string^2Φから定める式は}}
\DoxyCodeLine{2888       \textcolor{comment}{!}}
\DoxyCodeLine{2889       \textcolor{comment}{!    ▽\string^2Φ = f}}
\DoxyCodeLine{2890       \textcolor{comment}{!      Φ = const. at boundaries.}}
\DoxyCodeLine{2891       \textcolor{comment}{!      ∂Φ/∂r = 0 at boundaries          (粘着条件)}}
\DoxyCodeLine{2892       \textcolor{comment}{!      or ∂\string^2Φ/∂r\string^2 = 0 at boundaries   (応力なし条件)}}
\DoxyCodeLine{2893       \textcolor{comment}{!}}
\DoxyCodeLine{2894       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}}
\DoxyCodeLine{2895       \textcolor{comment}{!}}
\DoxyCodeLine{2896 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(in)}  :: ut}
\DoxyCodeLine{2897               \textcolor{comment}{!(in) 入力▽\string^2φ分布}}
\DoxyCodeLine{2898 }
\DoxyCodeLine{2899 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_LaplaPol2PolTau\_ut}
\DoxyCodeLine{2900               \textcolor{comment}{!(out) 出力ポロイダルポテンシャル分布}}
\DoxyCodeLine{2901 }
\DoxyCodeLine{2902       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond}
\DoxyCodeLine{2903               \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}}
\DoxyCodeLine{2904               \textcolor{comment}{!     RR    : 両端粘着条件}}
\DoxyCodeLine{2905               \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}}
\DoxyCodeLine{2906               \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}}
\DoxyCodeLine{2907               \textcolor{comment}{!     FF    : 両端応力なし条件}}
\DoxyCodeLine{2908 }
\DoxyCodeLine{2909       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new}
\DoxyCodeLine{2910               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}}
\DoxyCodeLine{2911               \textcolor{comment}{!     default は false.}}
\DoxyCodeLine{2912 }
\DoxyCodeLine{2913 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu}
\DoxyCodeLine{2914       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp}
\DoxyCodeLine{2915 }
\DoxyCodeLine{2916 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(nmc,0:km)}  :: uz\_work}
\DoxyCodeLine{2917 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(nmc,0:lm)}  :: ut\_work}
\DoxyCodeLine{2918       \textcolor{keywordtype}{logical}                       :: rigid1=.true.   \textcolor{comment}{! 境界条件}}
\DoxyCodeLine{2919       \textcolor{keywordtype}{logical}                       :: rigid2=.true.   \textcolor{comment}{! 境界条件}}
\DoxyCodeLine{2920 }
\DoxyCodeLine{2921       \textcolor{keywordtype}{logical} :: first = .true.}
\DoxyCodeLine{2922       \textcolor{keywordtype}{logical} :: new\_matrix = .false.}
\DoxyCodeLine{2923       \textcolor{keywordtype}{integer} :: l}
\DoxyCodeLine{2924       \textcolor{keywordtype}{save}    :: alu, kp, first}
\DoxyCodeLine{2925 }
\DoxyCodeLine{2926       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{2927          rigid1=.true. ; rigid2=.true.}
\DoxyCodeLine{2928       \textcolor{keywordflow}{else}}
\DoxyCodeLine{2929          \textcolor{keywordflow}{select case} (cond)}
\DoxyCodeLine{2930          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})}
\DoxyCodeLine{2931             rigid1 = .true.  ; rigid2 = .true.}
\DoxyCodeLine{2932          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})}
\DoxyCodeLine{2933             rigid1 = .true.  ; rigid2 = .false.}
\DoxyCodeLine{2934          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})}
\DoxyCodeLine{2935             rigid1 = .false. ; rigid2 = .true.}
\DoxyCodeLine{2936          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})}
\DoxyCodeLine{2937             rigid1 = .false. ; rigid2 = .false.}
\DoxyCodeLine{2938 \textcolor{keywordflow}{         case default}}
\DoxyCodeLine{2939             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_LaplaPol2PolTau\_ut'},\textcolor{stringliteral}{'B.C. not supported'})}
\DoxyCodeLine{2940 \textcolor{keywordflow}{         end select}}
\DoxyCodeLine{2941 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{2942 }
\DoxyCodeLine{2943       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}}
\DoxyCodeLine{2944          new\_matrix=.false.}
\DoxyCodeLine{2945       \textcolor{keywordflow}{else}}
\DoxyCodeLine{2946          new\_matrix=new}
\DoxyCodeLine{2947 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{2948 }
\DoxyCodeLine{2949       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{2950          first = .false.}
\DoxyCodeLine{2951 }
\DoxyCodeLine{2952          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)}
\DoxyCodeLine{2953          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)}
\DoxyCodeLine{2954          \textcolor{keyword}{allocate}(alu(nmc,0:lm,0:lm),kp(nmc,0:lm))}
\DoxyCodeLine{2955 }
\DoxyCodeLine{2956          alu = 0.0d0}
\DoxyCodeLine{2957          \textcolor{keywordflow}{do} l=0,lm-\/2}
\DoxyCodeLine{2958             ut\_work = 0.0d0 ; ut\_work(:,l) = 1.0d0}
\DoxyCodeLine{2959 }
\DoxyCodeLine{2960             \textcolor{comment}{! 各水平波数に関して独立の式}}
\DoxyCodeLine{2961             alu(:,:,l) = ut\_lapla\_ut(ut\_work)}
\DoxyCodeLine{2962 \textcolor{keywordflow}{         enddo}}
\DoxyCodeLine{2963 }
\DoxyCodeLine{2964          \textcolor{comment}{! 運動学的条件. 流線は境界で一定}}
\DoxyCodeLine{2965          \textcolor{keywordflow}{do} l=0,lm}
\DoxyCodeLine{2966             ut\_work=0.0d0}
\DoxyCodeLine{2967             ut\_work(:,l) = 1.0d0}
\DoxyCodeLine{2968             uz\_work = uz\_ut(ut\_work)}
\DoxyCodeLine{2969 }
\DoxyCodeLine{2970             alu(:,lm-\/1,l)  = uz\_work(:,0)}
\DoxyCodeLine{2971             alu(:,lm,l)    = uz\_work(:,km)}
\DoxyCodeLine{2972 }
\DoxyCodeLine{2973             \textcolor{comment}{! 力学的条件粘着条件}}
\DoxyCodeLine{2974             \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{2975                uz\_work=uz\_ut(ut\_drad\_ut(ut\_work))}
\DoxyCodeLine{2976             \textcolor{keywordflow}{else}}
\DoxyCodeLine{2977                uz\_work=uz\_ut(ut\_drad\_ut(ut\_drad\_ut(ut\_work)))}
\DoxyCodeLine{2978 \textcolor{keywordflow}{            endif}}
\DoxyCodeLine{2979             alu(:,lm-\/2,l) = uz\_work(:,0)}
\DoxyCodeLine{2980 }
\DoxyCodeLine{2981             \textcolor{comment}{! 力学的条件粘着条件}}
\DoxyCodeLine{2982             \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{2983                uz\_work=uz\_ut(ut\_drad\_ut(ut\_work))}
\DoxyCodeLine{2984             \textcolor{keywordflow}{else}}
\DoxyCodeLine{2985                uz\_work=uz\_ut(ut\_drad\_ut(ut\_drad\_ut(ut\_work)))}
\DoxyCodeLine{2986 \textcolor{keywordflow}{            endif}}
\DoxyCodeLine{2987             alu(:,lm-\/3,l) = uz\_work(:,km)}
\DoxyCodeLine{2988 \textcolor{keywordflow}{         end do}}
\DoxyCodeLine{2989 }
\DoxyCodeLine{2990          \textcolor{keyword}{call }ludecomp(alu,kp)}
\DoxyCodeLine{2991 }
\DoxyCodeLine{2992          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_LaplaPol2PolTau\_ut'},\&}
\DoxyCodeLine{2993                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})}
\DoxyCodeLine{2994 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{2995 }
\DoxyCodeLine{2996       ut\_work         = ut}
\DoxyCodeLine{2997       ut\_work(:,lm)   = 0.0d0               \textcolor{comment}{! 運動学的条件}}
\DoxyCodeLine{2998       ut\_work(:,lm-\/1) = 0.0d0               \textcolor{comment}{! 運動学的条件}}
\DoxyCodeLine{2999       ut\_work(:,lm-\/2) = 0.0d0               \textcolor{comment}{! 力学的条件}}
\DoxyCodeLine{3000       ut\_work(:,lm-\/3) = 0.0d0               \textcolor{comment}{! 力学的条件}}
\DoxyCodeLine{3001 }
\DoxyCodeLine{3002       ut\_laplapol2poltau\_ut = lusolve(alu,kp,ut\_work)}
\DoxyCodeLine{3003 }

\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}
