\hypertarget{interfacew__mpi__module__interpolate_1_1interpolate__w}{}\doxysection{w\+\_\+mpi\+\_\+module\+\_\+interpolate\+::interpolate\+\_\+w Interface Reference}
\label{interfacew__mpi__module__interpolate_1_1interpolate__w}\index{w\_mpi\_module\_interpolate::interpolate\_w@{w\_mpi\_module\_interpolate::interpolate\_w}}


入力緯度 {\ttfamily alon}, 入力経度 {\ttfamily alat} における関数値を その球面調和変換係数 w\+\_\+data から補間計算する  


\doxysubsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
real(dp) function \mbox{\hyperlink{interfacew__mpi__module__interpolate_1_1interpolate__w_aa15583c285b3864fbe777d9fa958fcf7}{interpolate\+\_\+array00\+\_\+w}} (w\+\_\+data, alon, alat)
\begin{DoxyCompactList}\small\item\em 緯度 {\ttfamily alat}, 経度 {\ttfamily alon} における関数値を その球面調和変換係数 {\ttfamily w\+\_\+data} から補間計算する \end{DoxyCompactList}\item 
real(dp) function, dimension(size(alon)) \mbox{\hyperlink{interfacew__mpi__module__interpolate_1_1interpolate__w_ad446f5825d10f59bdd7b5ef475108419}{interpolate\+\_\+array10\+\_\+w}} (w\+\_\+data, alon, alat)
\begin{DoxyCompactList}\small\item\em 緯度 {\ttfamily alat}, 経度 {\ttfamily alon} における関数値を その球面調和変換係数 {\ttfamily w\+\_\+data} から補間計算する \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
入力緯度 {\ttfamily alon}, 入力経度 {\ttfamily alat} における関数値を その球面調和変換係数 w\+\_\+data から補間計算する 

入力を受けつける緯度経度座標は,
\begin{DoxyItemize}
\item 1点,
\item 経度1点, 緯度複数点,
\item 経度複数点, 緯度1点,
\item 経度複数点, 緯度複数点 の 4 種類 
\end{DoxyItemize}

Definition at line 47 of file w\+\_\+mpi\+\_\+module\+\_\+interpolate.\+f90.



\doxysubsection{Member Function/\+Subroutine Documentation}
\mbox{\Hypertarget{interfacew__mpi__module__interpolate_1_1interpolate__w_aa15583c285b3864fbe777d9fa958fcf7}\label{interfacew__mpi__module__interpolate_1_1interpolate__w_aa15583c285b3864fbe777d9fa958fcf7}} 
\index{w\_mpi\_module\_interpolate::interpolate\_w@{w\_mpi\_module\_interpolate::interpolate\_w}!interpolate\_array00\_w@{interpolate\_array00\_w}}
\index{interpolate\_array00\_w@{interpolate\_array00\_w}!w\_mpi\_module\_interpolate::interpolate\_w@{w\_mpi\_module\_interpolate::interpolate\_w}}
\doxysubsubsection{\texorpdfstring{interpolate\_array00\_w()}{interpolate\_array00\_w()}}
{\footnotesize\ttfamily real(dp) function w\+\_\+mpi\+\_\+module\+\_\+interpolate\+::interpolate\+\_\+w\+::interpolate\+\_\+array00\+\_\+w (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc), intent(in)}]{w\+\_\+data,  }\item[{real(dp), intent(in)}]{alon,  }\item[{real(dp), intent(in)}]{alat }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



緯度 {\ttfamily alat}, 経度 {\ttfamily alon} における関数値を その球面調和変換係数 {\ttfamily w\+\_\+data} から補間計算する 



Definition at line 67 of file w\+\_\+mpi\+\_\+module\+\_\+interpolate.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{67 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(IN)} :: w\_data(nc)             \textcolor{comment}{! スペクトルデータ}}
\DoxyCodeLine{68 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(IN)} :: alon                   \textcolor{comment}{! 補間する位置(経度)}}
\DoxyCodeLine{69 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(IN)} :: alat                   \textcolor{comment}{! 補間する位置(緯度)}}
\DoxyCodeLine{70 \textcolor{keywordtype}{    real}(DP)             :: Interpolate\_array00\_w  \textcolor{comment}{! 補間した値}}
\DoxyCodeLine{71 }
\DoxyCodeLine{72 \textcolor{keywordtype}{    real}(DP) :: mu}
\DoxyCodeLine{73 \textcolor{keywordtype}{    real}(DP) :: y0, y1, y2, AnmPnm}
\DoxyCodeLine{74 \textcolor{keywordtype}{    real}(DP) :: gdata}
\DoxyCodeLine{75     \textcolor{keywordtype}{logical}  :: LFlagAnd, LFlagOr}
\DoxyCodeLine{76     \textcolor{keywordtype}{integer}  :: k,m}
\DoxyCodeLine{77     \textcolor{keywordtype}{integer}  :: ierr}
\DoxyCodeLine{78     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{parameter} :: wdata\_check = .false.}
\DoxyCodeLine{79 }
\DoxyCodeLine{80     mu = sin(alat)}
\DoxyCodeLine{81     gdata = 0.0d0}
\DoxyCodeLine{82 }
\DoxyCodeLine{83     \textcolor{keywordflow}{if} ( wdata\_check ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{84       \textcolor{comment}{!-\/-\/-\/-\/ 波数チェック}}
\DoxyCodeLine{85       lflagand = .true. ; lflagor  = .false.}
\DoxyCodeLine{86       \textcolor{keywordflow}{do} k=int(nm),0,-\/1}
\DoxyCodeLine{87         lflagand = (l\_nm(k,0) /= 0) .and. lflagand}
\DoxyCodeLine{88         lflagor = (l\_nm(k,0) /= 0) .or. lflagor}
\DoxyCodeLine{89 \textcolor{keywordflow}{      enddo}}
\DoxyCodeLine{90       \textcolor{keywordflow}{if} ( (.not. lflagand) .and. lflagor ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{91         \textcolor{keyword}{call }messagenotify \&}
\DoxyCodeLine{92           (\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_Interpolate\_array00'},\textcolor{stringliteral}{'Invalid spectral data for m=0'})}
\DoxyCodeLine{93 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{94 }
\DoxyCodeLine{95       \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{96         lflagand = .true. ; lflagor  = .false.}
\DoxyCodeLine{97         \textcolor{keywordflow}{do} k=int(nm),m,-\/1}
\DoxyCodeLine{98           lflagand = (l\_nm(k,m) /= 0) .and. lflagand}
\DoxyCodeLine{99           lflagor = (l\_nm(k,m) /= 0) .or. lflagor}
\DoxyCodeLine{100 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{101         \textcolor{keywordflow}{if} ( (.not. lflagand) .and. lflagor ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{102           \textcolor{keyword}{call }messagenotify                         \&}
\DoxyCodeLine{103             \& (\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_Interpolate\_array00'},          \&}
\DoxyCodeLine{104             \& \textcolor{stringliteral}{'Invalid spectral data for m nonzedo'})}
\DoxyCodeLine{105 \textcolor{keywordflow}{        endif}}
\DoxyCodeLine{106 \textcolor{keywordflow}{      end do}}
\DoxyCodeLine{107 }
\DoxyCodeLine{108       \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{109         lflagand = .true. ; lflagor  = .false.}
\DoxyCodeLine{110         \textcolor{keywordflow}{do} k=int(nm),m,-\/1}
\DoxyCodeLine{111           lflagand = (l\_nm(k,-\/m) /= 0) .and. lflagand}
\DoxyCodeLine{112           lflagor = (l\_nm(k,-\/m) /= 0) .or. lflagor}
\DoxyCodeLine{113 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{114         \textcolor{keywordflow}{if} ( (.not. lflagand) .and. lflagor ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{115           \textcolor{keyword}{call }messagenotify                         \&}
\DoxyCodeLine{116             \& (\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_Interpolate\_array00'},          \&}
\DoxyCodeLine{117             \& \textcolor{stringliteral}{'Invalid spectral data for m nonzedo'})}
\DoxyCodeLine{118 \textcolor{keywordflow}{        endif}}
\DoxyCodeLine{119 \textcolor{keywordflow}{      end do}}
\DoxyCodeLine{120 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{121 }
\DoxyCodeLine{122     \textcolor{comment}{!-\/-\/-\/-\/ Σa\_n\string^0 P\_n\string^0 の計算}}
\DoxyCodeLine{123     \textcolor{keywordflow}{if} ( l\_nm(0,0) /= 0 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{124       y2 = 0 ; y1 = 0}
\DoxyCodeLine{125       \textcolor{keywordflow}{do} k=int(nm),1,-\/1}
\DoxyCodeLine{126         y0 = alpha(k,0,mu) * y1 + beta(k+1,0)*y2 + w\_data(l\_nm(k,0))}
\DoxyCodeLine{127         y2 = y1 ; y1 = y0}
\DoxyCodeLine{128 \textcolor{keywordflow}{      enddo}}
\DoxyCodeLine{129       gdata = gdata + (  beta(1,0) * y2 + mu*sqrt(3.0d0) * y1 \&}
\DoxyCodeLine{130         + w\_data(l\_nm(0,0))  ) * pmm(0,mu)}
\DoxyCodeLine{131 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{132 }
\DoxyCodeLine{133     \textcolor{comment}{!-\/-\/-\/-\/  Σ Re[s\_n\string^m] P\_n\string^m exp(imλ)の計算}}
\DoxyCodeLine{134     \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{135       \textcolor{keywordflow}{if} ( l\_nm(m,m) /= 0 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{136         y2 = 0 ; y1 = 0}
\DoxyCodeLine{137         \textcolor{keywordflow}{do} k=int(nm),m+1,-\/1}
\DoxyCodeLine{138           y0 = alpha(k,m,mu) * y1 + beta(k+1,m) * y2 + w\_data(l\_nm(k,m))}
\DoxyCodeLine{139           y2 = y1 ; y1 = y0}
\DoxyCodeLine{140 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{141 }
\DoxyCodeLine{142         anmpnm =(w\_data(l\_nm(m,m)) + beta(m+1,m)*y2 \&}
\DoxyCodeLine{143           + mu*sqrt(2.0d0*m+3)*y1 ) * pmm(m,mu)}
\DoxyCodeLine{144 }
\DoxyCodeLine{145         gdata = gdata + anmpnm * 2 * cos(m*alon)}
\DoxyCodeLine{146 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{147 \textcolor{keywordflow}{    end do}}
\DoxyCodeLine{148 }
\DoxyCodeLine{149     \textcolor{comment}{!-\/-\/-\/-\/  Σ Im[s\_n\string^m] P\_n\string^m exp(imλ)の計算}}
\DoxyCodeLine{150     \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{151       \textcolor{keywordflow}{if} ( l\_nm(m,-\/m) /= 0 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{152         y2 = 0 ; y1 = 0}
\DoxyCodeLine{153         \textcolor{keywordflow}{do} k=int(nm),m+1,-\/1}
\DoxyCodeLine{154           y0 = alpha(k,m,mu) * y1 + beta(k+1,m)*y2 + w\_data(l\_nm(k,-\/m))}
\DoxyCodeLine{155           y2 = y1 ; y1 = y0}
\DoxyCodeLine{156 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{157 }
\DoxyCodeLine{158         anmpnm =(w\_data(l\_nm(m,-\/m)) + beta(m+1,m)*y2 \&}
\DoxyCodeLine{159           + mu*sqrt(2.0d0*m+3)*y1 ) * pmm(m,mu)}
\DoxyCodeLine{160 }
\DoxyCodeLine{161 }
\DoxyCodeLine{162         gdata = gdata -\/ anmpnm * 2 * sin(m*alon)}
\DoxyCodeLine{163 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{164 \textcolor{keywordflow}{    end do}}
\DoxyCodeLine{165 }
\DoxyCodeLine{166     \textcolor{keyword}{CALL }mpi\_allreduce(gdata,interpolate\_array00\_w,1,\&}
\DoxyCodeLine{167       mpi\_real8,mpi\_sum,int(icom),ierr)}
\DoxyCodeLine{168 }

\end{DoxyCode}
\mbox{\Hypertarget{interfacew__mpi__module__interpolate_1_1interpolate__w_ad446f5825d10f59bdd7b5ef475108419}\label{interfacew__mpi__module__interpolate_1_1interpolate__w_ad446f5825d10f59bdd7b5ef475108419}} 
\index{w\_mpi\_module\_interpolate::interpolate\_w@{w\_mpi\_module\_interpolate::interpolate\_w}!interpolate\_array10\_w@{interpolate\_array10\_w}}
\index{interpolate\_array10\_w@{interpolate\_array10\_w}!w\_mpi\_module\_interpolate::interpolate\_w@{w\_mpi\_module\_interpolate::interpolate\_w}}
\doxysubsubsection{\texorpdfstring{interpolate\_array10\_w()}{interpolate\_array10\_w()}}
{\footnotesize\ttfamily real(dp) function, dimension(size(alon)) w\+\_\+mpi\+\_\+module\+\_\+interpolate\+::interpolate\+\_\+w\+::interpolate\+\_\+array10\+\_\+w (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc), intent(in)}]{w\+\_\+data,  }\item[{real(dp), dimension(\+:), intent(in)}]{alon,  }\item[{real(dp), intent(in)}]{alat }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



緯度 {\ttfamily alat}, 経度 {\ttfamily alon} における関数値を その球面調和変換係数 {\ttfamily w\+\_\+data} から補間計算する 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em w\+\_\+data} & スペクトルデータ \\
\hline
\mbox{\texttt{ in}}  & {\em alon} & 補間する位置(経度) \\
\hline
\mbox{\texttt{ in}}  & {\em alat} & 補間する位置(緯度) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
補間した値 
\end{DoxyReturn}


Definition at line 176 of file w\+\_\+mpi\+\_\+module\+\_\+interpolate.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{176 }
\DoxyCodeLine{177 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(IN)} :: w\_data(nc)}
\DoxyCodeLine{179 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(IN)} :: alon(:)}
\DoxyCodeLine{181 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(IN)} :: alat}
\DoxyCodeLine{183 \textcolor{keywordtype}{    real}(DP)             :: Interpolate\_array10\_w(size(alon))}
\DoxyCodeLine{184 }
\DoxyCodeLine{185 \textcolor{keywordtype}{    real}(DP) :: mu}
\DoxyCodeLine{186 \textcolor{keywordtype}{    real}(DP) :: y0, y1, y2, AnmPnm}
\DoxyCodeLine{187 \textcolor{keywordtype}{    real}(DP) :: gdata(size(alon))}
\DoxyCodeLine{188     \textcolor{keywordtype}{logical} :: LFlagAnd, LFlagOr}
\DoxyCodeLine{189     \textcolor{keywordtype}{integer} :: i,k,m}
\DoxyCodeLine{190     \textcolor{keywordtype}{integer} :: ierr}
\DoxyCodeLine{191     \textcolor{keywordtype}{logical},\textcolor{keywordtype}{parameter} :: wdata\_check = .false.}
\DoxyCodeLine{192 }
\DoxyCodeLine{193     mu = sin(alat)}
\DoxyCodeLine{194     \textcolor{comment}{!\$omp parallel}}
\DoxyCodeLine{195     \textcolor{comment}{!\$omp workshare}}
\DoxyCodeLine{196     gdata = 0.0d0}
\DoxyCodeLine{197     \textcolor{comment}{!\$omp end workshare}}
\DoxyCodeLine{198     \textcolor{comment}{!\$omp end parallel}}
\DoxyCodeLine{199 }
\DoxyCodeLine{200     \textcolor{keywordflow}{if} ( wdata\_check ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{201       \textcolor{comment}{!-\/-\/-\/-\/ 波数チェック}}
\DoxyCodeLine{202       lflagand = .true. ; lflagor  = .false.}
\DoxyCodeLine{203       \textcolor{keywordflow}{do} k=int(nm),0,-\/1}
\DoxyCodeLine{204         lflagand = (l\_nm(k,0) /= 0) .and. lflagand}
\DoxyCodeLine{205         lflagor = (l\_nm(k,0) /= 0) .or. lflagor}
\DoxyCodeLine{206 \textcolor{keywordflow}{      enddo}}
\DoxyCodeLine{207       \textcolor{keywordflow}{if} ( (.not. lflagand) .and. lflagor ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{208         \textcolor{keyword}{call }messagenotify \&}
\DoxyCodeLine{209           (\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_Interpolate\_array00'},\textcolor{stringliteral}{'Invalid spectral data for m=0'})}
\DoxyCodeLine{210 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{211 }
\DoxyCodeLine{212       \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{213         lflagand = .true. ; lflagor  = .false.}
\DoxyCodeLine{214         \textcolor{keywordflow}{do} k=int(nm),m,-\/1}
\DoxyCodeLine{215           lflagand = (l\_nm(k,m) /= 0) .and. lflagand}
\DoxyCodeLine{216           lflagor = (l\_nm(k,m) /= 0) .or. lflagor}
\DoxyCodeLine{217 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{218         \textcolor{keywordflow}{if} ( (.not. lflagand) .and. lflagor ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{219           \textcolor{keyword}{call }messagenotify \&}
\DoxyCodeLine{220             (\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_Interpolate\_array00'},\textcolor{stringliteral}{'Invalid spectral data for m nonzedo'})}
\DoxyCodeLine{221 \textcolor{keywordflow}{        endif}}
\DoxyCodeLine{222 \textcolor{keywordflow}{      end do}}
\DoxyCodeLine{223 }
\DoxyCodeLine{224       \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{225         lflagand = .true. ; lflagor  = .false.}
\DoxyCodeLine{226         \textcolor{keywordflow}{do} k=int(nm),m,-\/1}
\DoxyCodeLine{227           lflagand = (l\_nm(k,-\/m) /= 0) .and. lflagand}
\DoxyCodeLine{228           lflagor = (l\_nm(k,-\/m) /= 0) .or. lflagor}
\DoxyCodeLine{229 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{230         \textcolor{keywordflow}{if} ( (.not. lflagand) .and. lflagor ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{231           \textcolor{keyword}{call }messagenotify \&}
\DoxyCodeLine{232             (\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_Interpolate\_array00'},\textcolor{stringliteral}{'Invalid spectral data for m nonzedo'})}
\DoxyCodeLine{233 \textcolor{keywordflow}{        endif}}
\DoxyCodeLine{234 \textcolor{keywordflow}{      end do}}
\DoxyCodeLine{235 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{236 }
\DoxyCodeLine{237     \textcolor{comment}{!-\/-\/-\/-\/ Σa\_n\string^0 P\_n\string^0 の計算}}
\DoxyCodeLine{238     \textcolor{keywordflow}{if} ( l\_nm(0,0) /= 0 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{239       y2 = 0 ; y1 = 0}
\DoxyCodeLine{240       \textcolor{keywordflow}{do} k=int(nm),1,-\/1}
\DoxyCodeLine{241         y0 = alpha(k,0,mu) * y1 + beta(k+1,0)*y2 + w\_data(l\_nm(k,0))}
\DoxyCodeLine{242         y2 = y1 ; y1 = y0}
\DoxyCodeLine{243 \textcolor{keywordflow}{      enddo}}
\DoxyCodeLine{244 }
\DoxyCodeLine{245       anmpnm = (  beta(1,0) * y2 + mu*sqrt(3.0d0) * y1 \&}
\DoxyCodeLine{246         + w\_data(l\_nm(0,0))  ) * pmm(0,mu)}
\DoxyCodeLine{247 }
\DoxyCodeLine{248       \textcolor{comment}{!\$omp parallel}}
\DoxyCodeLine{249       \textcolor{comment}{!\$omp workshare}}
\DoxyCodeLine{250       gdata = gdata + anmpnm}
\DoxyCodeLine{251       \textcolor{comment}{!\$omp end workshare}}
\DoxyCodeLine{252       \textcolor{comment}{!\$omp end parallel}}
\DoxyCodeLine{253 \textcolor{keywordflow}{    endif}}
\DoxyCodeLine{254 }
\DoxyCodeLine{255     \textcolor{comment}{!-\/-\/-\/-\/  Σ Re[s\_n\string^m] P\_n\string^m exp(imλ)の計算}}
\DoxyCodeLine{256     \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{257       \textcolor{keywordflow}{if} ( l\_nm(m,m) /= 0 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{258         y2 = 0 ; y1 = 0}
\DoxyCodeLine{259         \textcolor{keywordflow}{do} k=int(nm),m+1,-\/1}
\DoxyCodeLine{260           y0 = alpha(k,m,mu) * y1 + beta(k+1,m) * y2 + w\_data(l\_nm(k,m))}
\DoxyCodeLine{261           y2 = y1 ; y1 = y0}
\DoxyCodeLine{262 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{263 }
\DoxyCodeLine{264         anmpnm =(w\_data(l\_nm(m,m)) + beta(m+1,m)*y2 \&}
\DoxyCodeLine{265           + mu*sqrt(2.0d0*m+3)*y1 ) * pmm(m,mu)}
\DoxyCodeLine{266 }
\DoxyCodeLine{267         \textcolor{comment}{!\$omp parallel do default(shared)}}
\DoxyCodeLine{268         \textcolor{keywordflow}{do} i=1,\textcolor{keyword}{size}(alon)}
\DoxyCodeLine{269           gdata(i) = gdata(i) + anmpnm * 2 * cos(m*alon(i))}
\DoxyCodeLine{270 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{271         \textcolor{comment}{!omp end parallel do}}
\DoxyCodeLine{272 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{273 \textcolor{keywordflow}{    end do}}
\DoxyCodeLine{274 }
\DoxyCodeLine{275     \textcolor{comment}{!-\/-\/-\/-\/  Σ Im[s\_n\string^m] P\_n\string^m exp(imλ)の計算}}
\DoxyCodeLine{276     \textcolor{keywordflow}{do} m=1,int(nm)}
\DoxyCodeLine{277       \textcolor{keywordflow}{if} ( l\_nm(m,-\/m) /= 0 ) \textcolor{keywordflow}{then}}
\DoxyCodeLine{278         y2 = 0 ; y1 = 0}
\DoxyCodeLine{279         \textcolor{keywordflow}{do} k=int(nm),m+1,-\/1}
\DoxyCodeLine{280           y0 = alpha(k,m,mu) * y1 + beta(k+1,m)*y2 + w\_data(l\_nm(k,-\/m))}
\DoxyCodeLine{281           y2 = y1 ; y1 = y0}
\DoxyCodeLine{282 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{283 }
\DoxyCodeLine{284         anmpnm =(w\_data(l\_nm(m,-\/m)) + beta(m+1,m)*y2 \&}
\DoxyCodeLine{285           + mu*sqrt(2.0d0*m+3)*y1 ) * pmm(m,mu)}
\DoxyCodeLine{286 }
\DoxyCodeLine{287         \textcolor{comment}{!\$omp parallel do default(shared)}}
\DoxyCodeLine{288         \textcolor{keywordflow}{do} i=1,\textcolor{keyword}{size}(alon)}
\DoxyCodeLine{289           gdata(i) = gdata(i) -\/ anmpnm * 2 * sin(m*alon(i))}
\DoxyCodeLine{290 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{291         \textcolor{comment}{!omp end parallel do}}
\DoxyCodeLine{292 \textcolor{keywordflow}{      endif}}
\DoxyCodeLine{293 \textcolor{keywordflow}{    end do}}
\DoxyCodeLine{294 }
\DoxyCodeLine{295     \textcolor{keyword}{CALL }mpi\_allreduce(gdata,interpolate\_array10\_w,\textcolor{keyword}{size}(alon),\&}
\DoxyCodeLine{296       mpi\_real8,mpi\_sum,mpi\_comm\_world,ierr)}
\DoxyCodeLine{297 }

\end{DoxyCode}


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