\hypertarget{namespaceut__mpi__module}{}\section{ut\+\_\+mpi\+\_\+module Module Reference}
\label{namespaceut__mpi__module}\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_a32191b0ca7f0560c7a537f00874f44c0}{ut\+\_\+mpi\+\_\+initial} (i, j, k, n, l, r\+\_\+in, r\+\_\+out, np, npv)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a08265e5c8bcf526cadf141b451e00ba4}{ut\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(0\+:im-\/1, jc, kc), public \hyperlink{namespaceut__mpi__module_ae8269ff48efe3f37b1b76dc84ab49f67}{xvh\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_ad0fa09d6c61e41883e886e2d42cd67c6}{ut\+\_\+wh} (wh)
\item 
real(dp) function, dimension(nc, kc), public \hyperlink{namespaceut__mpi__module_a615a116c205ceb196afc3a0aa830d7da}{wh\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nc, 0\+:km), public \hyperlink{namespaceut__mpi__module_a21720eb02213ecc3287c6855fe4ca394}{wz\+\_\+wh} (wh)
\item 
real(dp) function, dimension(nc, kc), public \hyperlink{namespaceut__mpi__module_ae273a1b08f56d4c6df3ee16dcf988937}{wh\+\_\+wz} (wz)
\item 
real(dp) function, dimension(nc, 0\+:km), public \hyperlink{namespaceut__mpi__module_a30040985887362f7197a090cf5d62f8b}{wz\+\_\+wt} (wt)
\item 
real(dp) function, dimension(nc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_ac5042b60eebc0c40913d3bef605db4bb}{wt\+\_\+wz} (wz)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a05f2794fcdc6dd89fa374e0b2575a2cb}{ut\+\_\+wt} (wt)
\item 
real(dp) function, dimension(nc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a1b02bd64052f82f6bfd30620a848f97b}{wt\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:km), public \hyperlink{namespaceut__mpi__module_a837d1641a05884eba9e349c194bbd04e}{uz\+\_\+wz} (wz)
\item 
real(dp) function, dimension(nc, 0\+:km), public \hyperlink{namespaceut__mpi__module_a5341c7d9086cded4c0715764943288f6}{wz\+\_\+uz} (uz)
\item 
real(dp) function, dimension(nmc, 0\+:km), public \hyperlink{namespaceut__mpi__module_a44207e9f0a95033ef526372154b7dcda}{uz\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a724e777afeb1dc9b15e3ed20df5fd986}{ut\+\_\+uz} (uz)
\item 
real(dp) function, dimension(0\+:im-\/1, jc, kc), public \hyperlink{namespaceut__mpi__module_a82a28f5ec0bea91780ba924b4d9d275f}{xvh\+\_\+gradlon\+\_\+ut} (ut)
\item 
real(dp) function, dimension(0\+:im-\/1, jc, kc), public \hyperlink{namespaceut__mpi__module_a180d647fa22a21b25b5f703bd3b6aa17}{xvh\+\_\+gradlat\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_ac6f444520ae73cff7e591317c10ff66b}{ut\+\_\+divlon\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a7aa8f1d85a541b53e55bd124797ff0d2}{ut\+\_\+divlat\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_ac5fa4bed64e51c1e52f49d146dfb02b1}{ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh} (xvh\+\_\+\+Vlon, xvh\+\_\+\+Vlat, xvh\+\_\+\+Vrad)
\item 
real(dp) function, dimension(0\+:im-\/1, jc, kc), public \hyperlink{namespaceut__mpi__module_aca314b51fab6fd51eb6145e0a14d72d2}{xvh\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh} (xvh\+\_\+\+Vlon, xvh\+\_\+\+Vlat, xvh\+\_\+\+Vrad)
\item 
real(dp) function, dimension(0\+:im-\/1, jc, kc), public \hyperlink{namespaceut__mpi__module_a78aca0397330153607a8b56cd0522b68}{xvh\+\_\+rotlon\+\_\+ut\+\_\+ut} (ut\+\_\+\+Vrad, ut\+\_\+\+Vlat)
\item 
real(dp) function, dimension(0\+:im-\/1, jc, kc), public \hyperlink{namespaceut__mpi__module_a81f404ff0e5c36c210b56060dd0c9a8a}{xvh\+\_\+rotlat\+\_\+ut\+\_\+ut} (ut\+\_\+\+Vlon, ut\+\_\+\+Vrad)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_acd04ffa883e63b52dd3c53376ac22296}{ut\+\_\+rotrad\+\_\+xvh\+\_\+xvh} (xvh\+\_\+\+Vlat, xvh\+\_\+\+Vlon)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a1d581eb8d732be44ff4407f432b34806}{ut\+\_\+drad\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a8b1ac16a6b263fd2ac14774d348884e8}{ut\+\_\+divrad\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_aadbc3e9fb522e1bc419e0c95133ca371}{ut\+\_\+rotrad\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, size(ua\+\_\+data, 2)), public \hyperlink{namespaceut__mpi__module_a0c456da020a82625299556e38f09af9c}{ua\+\_\+laplah\+\_\+ua} (ua\+\_\+data)
\item 
real(dp) function, dimension(nmc, size(ua\+\_\+data, 2)), public \hyperlink{namespaceut__mpi__module_ab8bb92d5ff4bc9274778d7bd4c8c30ef}{ua\+\_\+laplahinv\+\_\+ua} (ua\+\_\+data)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a555784ac52026af836b059e5455877e0}{ut\+\_\+lapla\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a29e1d25e7a719a649e71919a08892895}{ut\+\_\+l2\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a9c13b44212a45229669fd8bcbd53150b}{ut\+\_\+l2inv\+\_\+ut} (ut)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_abd1b8c452b90f06c672c117b159b7826}{ut\+\_\+radrot\+\_\+xvh\+\_\+xvh} (xvh\+\_\+\+V\+L\+ON, xvh\+\_\+\+V\+L\+AT)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_a3c928effe2fca32b2b549dce469e240b}{ut\+\_\+radrotrot\+\_\+xvh\+\_\+xvh\+\_\+xvh} (xvh\+\_\+\+V\+L\+ON, xvh\+\_\+\+V\+L\+AT, xvh\+\_\+\+V\+R\+AD)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_ae537f74638b300a290422e4d65ed3086}{ut\+\_\+radrot\+\_\+radrotrot} (xvh\+\_\+\+V\+L\+ON, xvh\+\_\+\+V\+L\+AT, xvh\+\_\+\+V\+R\+AD, ut\+\_\+\+Tor, ut\+\_\+\+Lapla\+Pol)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_ab033647ba6c157c68f27f66db1ad9827}{ut\+\_\+potential2vectormpi} (xvh\+\_\+\+V\+L\+ON, xvh\+\_\+\+V\+L\+AT, xvh\+\_\+\+V\+R\+AD, ut\+\_\+\+T\+O\+R\+P\+OT, ut\+\_\+\+P\+O\+L\+P\+OT)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_afc3851a9c9fa51c1bb718e6464d8cf3b}{ut\+\_\+potential2rotationmpi} (xvh\+\_\+\+Rot\+V\+L\+ON, xvh\+\_\+\+Rot\+V\+L\+AT, xvh\+\_\+\+Rot\+V\+R\+AD, ut\+\_\+\+T\+O\+R\+P\+OT, ut\+\_\+\+P\+O\+L\+P\+OT)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_a0268f2077f33b59f7b40607e434db495}{ut\+\_\+vector2vordivmpi} (xvh\+\_\+\+V\+Lon, xvh\+\_\+\+V\+Lat, ut\+\_\+\+Vor, ut\+\_\+\+Div)
\item 
real(dp) function, dimension(jc, kc), public \hyperlink{namespaceut__mpi__module_a4352fb9fdb38863a3b17cc3133c0e3c0}{vh\+\_\+intlon\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(0\+:im-\/1, kc), public \hyperlink{namespaceut__mpi__module_a21abf6ec1f5c9ba30c06dddb2eeae323}{xh\+\_\+intlat\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(0\+:im-\/1, jc), public \hyperlink{namespaceut__mpi__module_aeb92ef2970dc8494d35ab57cab968441}{xv\+\_\+intrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(0\+:im-\/1), public \hyperlink{namespaceut__mpi__module_ae270447c21b862fca04e281e9b8c4729}{x\+\_\+intlatrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(jc), public \hyperlink{namespaceut__mpi__module_af4c15eb60325e5f2fec90ef0a2e57efb}{v\+\_\+intlonrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(kc), public \hyperlink{namespaceut__mpi__module_a963138d061e8ec7feba8191266cedeed}{h\+\_\+intlonlat\+\_\+xvh} (xvh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a464e073ad31dd8cf5d92dc96a71692cc}{intlonlatrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(kc), public \hyperlink{namespaceut__mpi__module_ad42854400a93942d058293425eb6b55d}{h\+\_\+intlat\+\_\+vh} (vh)
\item 
real(dp) function, dimension(jc), public \hyperlink{namespaceut__mpi__module_a17bc6f31acab93462dd1f3d8dc88ad63}{v\+\_\+intrad\+\_\+vh} (vh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a83fbd71e73f9991d9731c1893257daa2}{intlatrad\+\_\+vh} (vh)
\item 
real(dp) function, dimension(kc), public \hyperlink{namespaceut__mpi__module_a6044c11e723ea501e36d3773a5ddc18f}{h\+\_\+intlon\+\_\+xh} (xh)
\item 
real(dp) function, dimension(0\+:im-\/1), public \hyperlink{namespaceut__mpi__module_a78a894eafe47af26a86eed1415d6ddba}{x\+\_\+intrad\+\_\+xh} (xh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_ae7648b5c56e7dc5491e3f48e337c6dd0}{intlonrad\+\_\+xh} (xh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a55a5e421874d219c2c0177b6d3f3dbc8}{intrad\+\_\+h} (h)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a8388dc1b87c16373fc7701b4bbb5f082}{intrad\+\_\+z} (z)
\item 
real(dp) function, dimension(jc, kc), public \hyperlink{namespaceut__mpi__module_a0edcb15ca67d6d96126c2c2ac7151992}{vh\+\_\+avrlon\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(im, kc), public \hyperlink{namespaceut__mpi__module_ad6be669f16c9f4f2b155cf5047eca74f}{xh\+\_\+avrlat\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(0\+:im-\/1, jc), public \hyperlink{namespaceut__mpi__module_a5d7d0283f7087b09d9f9b29b56dd4b93}{xv\+\_\+avrrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(0\+:im-\/1), public \hyperlink{namespaceut__mpi__module_a49ee30b758bf36d6f856eaddfd5585b4}{x\+\_\+avrlatrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(jc), public \hyperlink{namespaceut__mpi__module_a7456474fd32c19d1b3bc10a061bb8c7f}{v\+\_\+avrlonrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(kc), public \hyperlink{namespaceut__mpi__module_add4e76f1eecde83f361fea5391c6b5de}{h\+\_\+avrlonlat\+\_\+xvh} (xvh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a5f9ad2ade6ff14ba75d3f4fb6f74f28d}{avrlonlatrad\+\_\+xvh} (xvh)
\item 
real(dp) function, dimension(kc), public \hyperlink{namespaceut__mpi__module_a4d925aa2afc4ab9a1419c25001e06447}{h\+\_\+avrlat\+\_\+vh} (vh)
\item 
real(dp) function, dimension(jc), public \hyperlink{namespaceut__mpi__module_a5b2ceefd9dfaa541115525c9bd3a6e7a}{v\+\_\+avrrad\+\_\+vh} (vh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a34f2f3ee13d45fb3ca0cd619b9773cc7}{avrlatrad\+\_\+vh} (vh)
\item 
real(dp) function, dimension(kc), public \hyperlink{namespaceut__mpi__module_ab44efc0500a109b7c390008b95e567a3}{h\+\_\+avrlon\+\_\+xh} (xh)
\item 
real(dp) function, dimension(0\+:im-\/1), public \hyperlink{namespaceut__mpi__module_a9a64b8edac4a400182fcdfe3922ae0c8}{x\+\_\+avrrad\+\_\+xh} (xh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a6c9ecb89f909b6ce3553a30a3328e179}{avrlonrad\+\_\+xh} (xh)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a464bd541b3063f1f5388e65eccccc783}{avrrad\+\_\+h} (h)
\item 
real(dp) function, public \hyperlink{namespaceut__mpi__module_a3d9e5496ca30656e2d371bec4b763cf2}{avrrad\+\_\+z} (z)
\item 
real(dp) function, dimension(0\+:nm,-\/nm\+:nm, 0\+:km), public \hyperlink{namespaceut__mpi__module_a19fa52fd395bdc6fbcb5ca9ea87d4166}{nmz\+\_\+toroidalenergyspectrum\+\_\+ut} (ut\+\_\+\+T\+O\+R\+P\+OT)
\item 
real(dp) function, dimension(0\+:nm, 0\+:km), public \hyperlink{namespaceut__mpi__module_a94caa9b0be8c047fa7171796685908a9}{nz\+\_\+toroidalenergyspectrum\+\_\+ut} (ut\+\_\+\+T\+O\+R\+P\+OT)
\item 
real(dp) function, dimension(0\+:nm,-\/nm\+:nm, 0\+:km), public \hyperlink{namespaceut__mpi__module_a053ca4217fb17a6c66b5712059f90237}{nmz\+\_\+poloidalenergyspectrum\+\_\+ut} (ut\+\_\+\+P\+O\+L\+P\+OT)
\item 
real(dp) function, dimension(0\+:nm, 0\+:km), public \hyperlink{namespaceut__mpi__module_acd3b4b24dfaf01c365d9adbcbb637898}{nz\+\_\+poloidalenergyspectrum\+\_\+ut} (ut\+\_\+\+P\+O\+L\+P\+OT)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_a3713a311f89ae3bfb0618773aef5c1c9}{ut\+\_\+boundariestau} (ut, values, cond)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_a3a5ac97580cc297d5b1573b95d0d2aea}{ut\+\_\+boundariesgrid} (ut, values, cond)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_afff8654c7604a675eec2df64ec12bd2b}{ut\+\_\+torboundariestau} (ut\+\_\+\+T\+O\+R\+P\+OT, values, cond, new)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_a18c4dba53683ba320726b16750dfb459}{ut\+\_\+torboundariesgrid} (ut\+\_\+\+T\+O\+R\+P\+OT, values, cond, new)
\item 
real(dp) function, dimension(nmc, 0\+:km), public \hyperlink{namespaceut__mpi__module_a7dbe6d500795b0d458b504045a8a2a78}{uz\+\_\+laplapol2pol\+\_\+uz} (uz, cond, new)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_adbae848ef0b494d5a32cce10cb6ad98f}{ut\+\_\+laplapol2poltau\+\_\+ut} (ut, cond, new)
\item 
real(dp) function, dimension(nmc, 0\+:lm), public \hyperlink{namespaceut__mpi__module_acfac93434de7671be57f901202543c18}{ut\+\_\+laplapol2polgrid\+\_\+ut} (ut, cond, new)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_aa09728f6be56b839139b514227d2fc75}{ut\+\_\+tormagboundariestau} (ut\+\_\+\+T\+OR, new)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_a5ea3e05e5975fa3ae45bd0105b81a30a}{ut\+\_\+tormagboundariesgrid} (ut\+\_\+\+T\+OR, new)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_acd00abc66819e03587fd78d1b5f69c52}{ut\+\_\+polmagboundariestau} (ut\+\_\+\+P\+OL, new)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_ae86900d2296f8af82b92d277eccd467e}{ut\+\_\+polmagboundariesgrid} (ut\+\_\+\+P\+OL, new)
\item 
subroutine, public \hyperlink{namespaceut__mpi__module_a850ff82982733303587cf87072eaf1bb}{ut\+\_\+mpi\+\_\+finalize}
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
real(dp), dimension(\+:,\+:,\+:), allocatable, public \hyperlink{namespaceut__mpi__module_a06a72aa6fbff842afbdd93532235f05f}{xvh\+\_\+lon}
\item 
real(dp), dimension(\+:,\+:,\+:), allocatable, public \hyperlink{namespaceut__mpi__module_a2a7dc1c6e45ea5e4867ae67678fc33f9}{xvh\+\_\+lat}
\item 
real(dp), dimension(\+:,\+:,\+:), allocatable, public \hyperlink{namespaceut__mpi__module_aeef4370123da90ecf087e79141a479f2}{xvh\+\_\+rad}
\item 
real(dp), dimension(\+:,\+:), allocatable, public \hyperlink{namespaceut__mpi__module_a87e821c02649c81d5ceb46a4b00bf256}{wh\+\_\+rad}
\item 
real(dp), dimension(\+:,\+:), allocatable, public \hyperlink{namespaceut__mpi__module_a14acbdd359394865ddbf8860897295cd}{uz\+\_\+rad}
\item 
real(dp), dimension(\+:), allocatable, public \hyperlink{namespaceut__mpi__module_a19f62f105aab496d228e5d975acfd9e6}{h\+\_\+rad}
\item 
real(dp), dimension(\+:), allocatable, public \hyperlink{namespaceut__mpi__module_a120aed41e8a3e9c431f555e983bc778b}{h\+\_\+rad\+\_\+weight}
\item 
real(dp), save, public \hyperlink{namespaceut__mpi__module_aa9f687d105a67d8f5931513f96fc70aa}{ut\+\_\+vmiss} = -\/999.\+0
\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespaceut__mpi__module_a34f2f3ee13d45fb3ca0cd619b9773cc7}\label{namespaceut__mpi__module_a34f2f3ee13d45fb3ca0cd619b9773cc7}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!avrlatrad\+\_\+vh@{avrlatrad\+\_\+vh}}
\index{avrlatrad\+\_\+vh@{avrlatrad\+\_\+vh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{avrlatrad\+\_\+vh()}{avrlatrad\_vh()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::avrlatrad\+\_\+vh (\begin{DoxyParamCaption}\item[{real(dp), dimension(jc,kc), intent(in)}]{vh }\end{DoxyParamCaption})}



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



References intlatrad\+\_\+vh().


\begin{DoxyCode}
2043       \textcolor{comment}{!}
2044       \textcolor{comment}{! 2 次元(VH)格子点データの緯度動径(子午面)平均}
2045       \textcolor{comment}{!}
2046       \textcolor{comment}{! 2 次元データ f(φ,r) に対して}
2047       \textcolor{comment}{!}
2048       \textcolor{comment}{!    ∫f(φ,r) r^2cosφ dφdr /(2(r[o]^3-r[i]^3)/3)}
2049       \textcolor{comment}{!}
2050       \textcolor{comment}{! を計算する.}
2051       \textcolor{comment}{!}
2052       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,kc)}, \textcolor{keywordtype}{intent(in)} :: vh
2053       \textcolor{comment}{!(in) 2 次元緯度動径(子午面)格子点データ}
2054 
2055       \textcolor{keywordtype}{real(DP)}                   :: avrlatrad\_vh
2056       \textcolor{comment}{!(out) 平均値}
2057 
2058       avrlatrad\_vh = intlatrad\_vh(vh)/(sum(y\_lat\_weight)*sum(z\_rad\_weight))
2059 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a34f2f3ee13d45fb3ca0cd619b9773cc7_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a5f9ad2ade6ff14ba75d3f4fb6f74f28d}\label{namespaceut__mpi__module_a5f9ad2ade6ff14ba75d3f4fb6f74f28d}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!avrlonlatrad\+\_\+xvh@{avrlonlatrad\+\_\+xvh}}
\index{avrlonlatrad\+\_\+xvh@{avrlonlatrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{avrlonlatrad\+\_\+xvh()}{avrlonlatrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::avrlonlatrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References intlonlatrad\+\_\+xvh().


\begin{DoxyCode}
1989       \textcolor{comment}{!}
1990       \textcolor{comment}{! 3 次元格子点データの緯度経度動径(全球)積分}
1991       \textcolor{comment}{!}
1992       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1993       \textcolor{comment}{!}
1994       \textcolor{comment}{!    ∫f(λ,φ,r) r^2cosφ dλdφdr /(4π(r[o]^3-r[i]^3)/3)}
1995       \textcolor{comment}{!}
1996       \textcolor{comment}{! を計算する.}
1997       \textcolor{comment}{!}
1998       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1999       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
2000 
2001       \textcolor{keywordtype}{real(DP)}                     :: avrlonlatrad\_xvh
2002       \textcolor{comment}{!(out) 全球平均値}
2003 
2004       avrlonlatrad\_xvh = intlonlatrad\_xvh(xvh) &
2005             /(sum(x\_lon\_weight)*sum(y\_lat\_weight) * sum(z\_rad\_weight))
2006 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a5f9ad2ade6ff14ba75d3f4fb6f74f28d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a6c9ecb89f909b6ce3553a30a3328e179}\label{namespaceut__mpi__module_a6c9ecb89f909b6ce3553a30a3328e179}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!avrlonrad\+\_\+xh@{avrlonrad\+\_\+xh}}
\index{avrlonrad\+\_\+xh@{avrlonrad\+\_\+xh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{avrlonrad\+\_\+xh()}{avrlonrad\_xh()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::avrlonrad\+\_\+xh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,kc), intent(in)}]{xh }\end{DoxyParamCaption})}



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



References intlonrad\+\_\+xh().


\begin{DoxyCode}
2100       \textcolor{comment}{!}
2101       \textcolor{comment}{! 2 次元(XH)格子点データの経度動径平均}
2102       \textcolor{comment}{!}
2103       \textcolor{comment}{! 2 次元データ f(λ,r) に対して}
2104       \textcolor{comment}{!}
2105       \textcolor{comment}{!    ∫f(λ,r) r^2dλdr /(2π(r[o]^3-r[i]^3)/3)}
2106       \textcolor{comment}{!}
2107       \textcolor{comment}{! を計算する.}
2108       \textcolor{comment}{!}
2109       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,kc)}, \textcolor{keywordtype}{intent(in)} :: xh
2110       \textcolor{comment}{! (in) 2 次元格子点データ}
2111       \textcolor{keywordtype}{real(DP)}                                 :: avrlonrad\_xh
2112       \textcolor{comment}{! 積分値}
2113 
2114       avrlonrad\_xh = intlonrad\_xh(xh)/(sum(x\_lon\_weight)*sum(z\_rad\_weight))
2115 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a6c9ecb89f909b6ce3553a30a3328e179_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a464bd541b3063f1f5388e65eccccc783}\label{namespaceut__mpi__module_a464bd541b3063f1f5388e65eccccc783}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!avrrad\+\_\+h@{avrrad\+\_\+h}}
\index{avrrad\+\_\+h@{avrrad\+\_\+h}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{avrrad\+\_\+h()}{avrrad\_h()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::avrrad\+\_\+h (\begin{DoxyParamCaption}\item[{real(dp), dimension(kc), intent(in)}]{h }\end{DoxyParamCaption})}



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



References intrad\+\_\+h().


\begin{DoxyCode}
2120       \textcolor{comment}{!}
2121       \textcolor{comment}{! 1 次元(Z)格子点データの動径方向域平均.}
2122       \textcolor{comment}{!}
2123       \textcolor{comment}{! 1 次元データ f(r) に対して ∫f(r) r^2dr /((r[o]^3-r[i]^3)/3) を}
2124       \textcolor{comment}{! 計算する.}
2125       \textcolor{comment}{!}
2126       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}, \textcolor{keywordtype}{intent(in)} :: h
2127       \textcolor{comment}{!(in) 1 次元動径格子点データ}
2128       \textcolor{keywordtype}{real(DP)}                            :: avrrad\_h
2129       \textcolor{comment}{!(out) 平均値}
2130 
2131       avrrad\_h = intrad\_h(h)/sum(z\_rad\_weight)
2132 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a464bd541b3063f1f5388e65eccccc783_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a3d9e5496ca30656e2d371bec4b763cf2}\label{namespaceut__mpi__module_a3d9e5496ca30656e2d371bec4b763cf2}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!avrrad\+\_\+z@{avrrad\+\_\+z}}
\index{avrrad\+\_\+z@{avrrad\+\_\+z}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{avrrad\+\_\+z()}{avrrad\_z()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::avrrad\+\_\+z (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:km), intent(in)}]{z }\end{DoxyParamCaption})}



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



References at\+\_\+module\+::a\+\_\+interpolate\+\_\+at(), and intrad\+\_\+z().


\begin{DoxyCode}
2136       \textcolor{comment}{!}
2137       \textcolor{comment}{! 1 次元(Z)格子点データの動径方向域平均.}
2138       \textcolor{comment}{!}
2139       \textcolor{comment}{! 1 次元データ f(r) に対して ∫f(r) r^2dr /((r[o]^3-r[i]^3)/3) を}
2140       \textcolor{comment}{! 計算する.}
2141       \textcolor{comment}{!}
2142       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:km)}, \textcolor{keywordtype}{intent(in)} :: z
2143       \textcolor{comment}{!(in) 1 次元動径格子点データ}
2144       \textcolor{keywordtype}{real(DP)}                            :: avrrad\_z
2145       \textcolor{comment}{!(out) 平均値}
2146 
2147       avrrad\_z = intrad\_z(z)/sum(z\_rad\_weight)
2148 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a3d9e5496ca30656e2d371bec4b763cf2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a4d925aa2afc4ab9a1419c25001e06447}\label{namespaceut__mpi__module_a4d925aa2afc4ab9a1419c25001e06447}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+avrlat\+\_\+vh@{h\+\_\+avrlat\+\_\+vh}}
\index{h\+\_\+avrlat\+\_\+vh@{h\+\_\+avrlat\+\_\+vh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+avrlat\+\_\+vh()}{h\_avrlat\_vh()}}
{\footnotesize\ttfamily real(dp) function, dimension(kc), public ut\+\_\+mpi\+\_\+module\+::h\+\_\+avrlat\+\_\+vh (\begin{DoxyParamCaption}\item[{real(dp), dimension(jc,kc), intent(in)}]{vh }\end{DoxyParamCaption})}



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



References h\+\_\+intlat\+\_\+vh().


\begin{DoxyCode}
2011       \textcolor{comment}{!}
2012       \textcolor{comment}{! 2 次元(VH)格子点データの緯度方向域平均.}
2013       \textcolor{comment}{!}
2014       \textcolor{comment}{! 2 次元データ f(φ,r) に対して ∫f(φ,r) cosφ dφ/2 を計算する.}
2015       \textcolor{comment}{!}
2016       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,kc)}, \textcolor{keywordtype}{intent(in)} :: vh
2017       \textcolor{comment}{!(in) 2 次元緯度動径(子午面)格子点データ}
2018 
2019       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}  :: h\_avrlat\_vh
2020       \textcolor{comment}{!(out) 緯度平均された 1 次元動径格子点データ}
2021 
2022       h\_avrlat\_vh = h\_intlat\_vh(vh)/sum(y\_lat\_weight)
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a4d925aa2afc4ab9a1419c25001e06447_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ab44efc0500a109b7c390008b95e567a3}\label{namespaceut__mpi__module_ab44efc0500a109b7c390008b95e567a3}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+avrlon\+\_\+xh@{h\+\_\+avrlon\+\_\+xh}}
\index{h\+\_\+avrlon\+\_\+xh@{h\+\_\+avrlon\+\_\+xh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+avrlon\+\_\+xh()}{h\_avrlon\_xh()}}
{\footnotesize\ttfamily real(dp) function, dimension(kc), public ut\+\_\+mpi\+\_\+module\+::h\+\_\+avrlon\+\_\+xh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,kc), intent(in)}]{xh }\end{DoxyParamCaption})}



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



References h\+\_\+intlon\+\_\+xh().


\begin{DoxyCode}
2064       \textcolor{comment}{!}
2065       \textcolor{comment}{! 2 次元(XH)格子点データの経度方向平均.}
2066       \textcolor{comment}{!}
2067       \textcolor{comment}{! 2 次元データ f(λ,r) に対して ∫f(λ,r)dλ/2π を計算する.}
2068       \textcolor{comment}{!}
2069       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,kc)}, \textcolor{keywordtype}{intent(in)} :: xh
2070       \textcolor{comment}{!(in) 2 次元緯度動径格子点データ}
2071 
2072       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}  :: h\_avrlon\_xh
2073       \textcolor{comment}{!(out) 経度平均された 1 次元動径格子点データ}
2074 
2075       h\_avrlon\_xh = h\_intlon\_xh(xh)/sum(x\_lon\_weight)
2076 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ab44efc0500a109b7c390008b95e567a3_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_add4e76f1eecde83f361fea5391c6b5de}\label{namespaceut__mpi__module_add4e76f1eecde83f361fea5391c6b5de}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+avrlonlat\+\_\+xvh@{h\+\_\+avrlonlat\+\_\+xvh}}
\index{h\+\_\+avrlonlat\+\_\+xvh@{h\+\_\+avrlonlat\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+avrlonlat\+\_\+xvh()}{h\_avrlonlat\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(kc), public ut\+\_\+mpi\+\_\+module\+::h\+\_\+avrlonlat\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References h\+\_\+intlonlat\+\_\+xvh().


\begin{DoxyCode}
1968       \textcolor{comment}{!}
1969       \textcolor{comment}{! 3 次元格子点データの緯度経度(水平, 球面)積分}
1970       \textcolor{comment}{!}
1971       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1972       \textcolor{comment}{!}
1973       \textcolor{comment}{!    ∫f(λ,φ,r) cosφ dλdφ /4π}
1974       \textcolor{comment}{!}
1975       \textcolor{comment}{! を計算する.}
1976       \textcolor{comment}{!}
1977       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1978       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1979 
1980       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}     :: h\_avrlonlat\_xvh
1981       \textcolor{comment}{!(out) 緯度経度(水平, 球面)平均された 1 次元動径格子点データ}
1982 
1983       h\_avrlonlat\_xvh = h\_intlonlat\_xvh(xvh) &
1984                  /(sum(x\_lon\_weight)*sum(y\_lat\_weight))
1985 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_add4e76f1eecde83f361fea5391c6b5de_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ad42854400a93942d058293425eb6b55d}\label{namespaceut__mpi__module_ad42854400a93942d058293425eb6b55d}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+intlat\+\_\+vh@{h\+\_\+intlat\+\_\+vh}}
\index{h\+\_\+intlat\+\_\+vh@{h\+\_\+intlat\+\_\+vh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+intlat\+\_\+vh()}{h\_intlat\_vh()}}
{\footnotesize\ttfamily real(dp) function, dimension(kc), public ut\+\_\+mpi\+\_\+module\+::h\+\_\+intlat\+\_\+vh (\begin{DoxyParamCaption}\item[{real(dp), dimension(jc,kc), intent(in)}]{vh }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1713       \textcolor{comment}{!}
1714       \textcolor{comment}{! 2 次元(VZ)格子点データの緯度方向域積分.}
1715       \textcolor{comment}{!}
1716       \textcolor{comment}{! 2 次元データ f(φ,r) に対して∫f(φ,r) cosφ dφ を計算する.}
1717       \textcolor{comment}{!}
1718       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,kc)}, \textcolor{keywordtype}{intent(in)} :: vh
1719       \textcolor{comment}{!(in) 2 次元緯度動径(子午面)格子点データ}
1720 
1721       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}  :: h\_intlat\_vh
1722       \textcolor{comment}{!(out) 緯度積分された 1 次元動径格子点データ}
1723 
1724       h\_intlat\_vh = b\_intlat\_vb(vh)
1725 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a6044c11e723ea501e36d3773a5ddc18f}\label{namespaceut__mpi__module_a6044c11e723ea501e36d3773a5ddc18f}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+intlon\+\_\+xh@{h\+\_\+intlon\+\_\+xh}}
\index{h\+\_\+intlon\+\_\+xh@{h\+\_\+intlon\+\_\+xh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+intlon\+\_\+xh()}{h\_intlon\_xh()}}
{\footnotesize\ttfamily real(dp) function, dimension(kc), public ut\+\_\+mpi\+\_\+module\+::h\+\_\+intlon\+\_\+xh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,kc), intent(in)}]{xh }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1767       \textcolor{comment}{!}
1768       \textcolor{comment}{! 2 次元(XH)格子点データの経度方向積分.}
1769       \textcolor{comment}{!}
1770       \textcolor{comment}{! 2 次元データ f(λ,r) に対して ∫f(λ,r)dλ を計算する.}
1771       \textcolor{comment}{!}
1772       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,kc)}, \textcolor{keywordtype}{intent(in)} :: xh
1773       \textcolor{comment}{!(in) 2 次元緯度動径格子点データ}
1774 
1775       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}  :: h\_intlon\_xh
1776       \textcolor{comment}{!(out) 経度積分された 1 次元動径格子点データ}
1777 
1778       \textcolor{keywordtype}{integer} :: i
1779 
1780       h\_intlon\_xh = 0.0d0
1781       \textcolor{keywordflow}{do} i=0,im-1
1782          h\_intlon\_xh = h\_intlon\_xh + xh(i,:) * x\_lon\_weight(i)
1783 \textcolor{keywordflow}{      enddo}
1784 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a963138d061e8ec7feba8191266cedeed}\label{namespaceut__mpi__module_a963138d061e8ec7feba8191266cedeed}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+intlonlat\+\_\+xvh@{h\+\_\+intlonlat\+\_\+xvh}}
\index{h\+\_\+intlonlat\+\_\+xvh@{h\+\_\+intlonlat\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+intlonlat\+\_\+xvh()}{h\_intlonlat\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(kc), public ut\+\_\+mpi\+\_\+module\+::h\+\_\+intlonlat\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1672       \textcolor{comment}{!}
1673       \textcolor{comment}{! 3 次元格子点データの緯度経度(水平, 球面)積分}
1674       \textcolor{comment}{!}
1675       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1676       \textcolor{comment}{!}
1677       \textcolor{comment}{!    ∫f(λ,φ,r) cosφ dλdφ}
1678       \textcolor{comment}{!}
1679       \textcolor{comment}{! を計算する.}
1680       \textcolor{comment}{!}
1681       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1682       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1683 
1684       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}     :: h\_intlonlat\_xvh
1685       \textcolor{comment}{!(out) 緯度経度(水平, 球面)積分された 1 次元動径格子点データ}
1686 
1687       h\_intlonlat\_xvh = b\_intlonlat\_xvb(xvh)
1688 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a83fbd71e73f9991d9731c1893257daa2}\label{namespaceut__mpi__module_a83fbd71e73f9991d9731c1893257daa2}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!intlatrad\+\_\+vh@{intlatrad\+\_\+vh}}
\index{intlatrad\+\_\+vh@{intlatrad\+\_\+vh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{intlatrad\+\_\+vh()}{intlatrad\_vh()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::intlatrad\+\_\+vh (\begin{DoxyParamCaption}\item[{real(dp), dimension(jc,0\+:km), intent(in)}]{vh }\end{DoxyParamCaption})}



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



References v\+\_\+intrad\+\_\+vh().


\begin{DoxyCode}
1749       \textcolor{comment}{!}
1750       \textcolor{comment}{! 2 次元(VH)格子点データの緯度動径積分(子午面)および平均}
1751       \textcolor{comment}{!}
1752       \textcolor{comment}{! 2 次元データ f(φ,r) に対して ∫f(φ,r) r^2cosφ dφdr を計算する.}
1753       \textcolor{comment}{!}
1754       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,0:km)}, \textcolor{keywordtype}{intent(in)} :: vh
1755       \textcolor{comment}{!(in) 2 次元緯度動径(子午面)格子点データ}
1756 
1757       \textcolor{keywordtype}{real(DP)}                   :: intlatrad\_vh
1758       \textcolor{comment}{!(out) 積分値}
1759 
1760       \textcolor{comment}{!IntLatRad\_vh = IntRad\_h(b\_IntLat\_vb(vh))}
1761       intlatrad\_vh = intlat\_v(v\_intrad\_vh(vh))
1762 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a83fbd71e73f9991d9731c1893257daa2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a464e073ad31dd8cf5d92dc96a71692cc}\label{namespaceut__mpi__module_a464e073ad31dd8cf5d92dc96a71692cc}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!intlonlatrad\+\_\+xvh@{intlonlatrad\+\_\+xvh}}
\index{intlonlatrad\+\_\+xvh@{intlonlatrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{intlonlatrad\+\_\+xvh()}{intlonlatrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::intlonlatrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References xv\+\_\+intrad\+\_\+xvh().


\begin{DoxyCode}
1692       \textcolor{comment}{!}
1693       \textcolor{comment}{! 3 次元格子点データの緯度経度動径(全球)積分}
1694       \textcolor{comment}{!}
1695       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1696       \textcolor{comment}{!}
1697       \textcolor{comment}{!     ∫f(λ,φ,r) r^2cosφ dλdφdr}
1698       \textcolor{comment}{!}
1699       \textcolor{comment}{! を計算する.}
1700       \textcolor{comment}{!}
1701       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1702       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1703 
1704       \textcolor{keywordtype}{real(DP)}                     :: intlonlatrad\_xvh
1705       \textcolor{comment}{!(out) 全球積分値}
1706 
1707       intlonlatrad\_xvh = intlonlat\_xv(xv\_intrad\_xvh(xvh))
1708 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a464e073ad31dd8cf5d92dc96a71692cc_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ae7648b5c56e7dc5491e3f48e337c6dd0}\label{namespaceut__mpi__module_ae7648b5c56e7dc5491e3f48e337c6dd0}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!intlonrad\+\_\+xh@{intlonrad\+\_\+xh}}
\index{intlonrad\+\_\+xh@{intlonrad\+\_\+xh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{intlonrad\+\_\+xh()}{intlonrad\_xh()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::intlonrad\+\_\+xh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,kc), intent(in)}]{xh }\end{DoxyParamCaption})}



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



References x\+\_\+intrad\+\_\+xh().


\begin{DoxyCode}
1808       \textcolor{comment}{!}
1809       \textcolor{comment}{! 2 次元(XH)格子点データの経度動径積分}
1810       \textcolor{comment}{!}
1811       \textcolor{comment}{! 2 次元データ f(λ,r) に対して∫f(λ,r) r^2dλdr を計算する.}
1812       \textcolor{comment}{!}
1813       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,kc)}, \textcolor{keywordtype}{intent(in)} :: xh
1814       \textcolor{comment}{!(in) 2 次元緯度動径格子点データ}
1815 
1816       \textcolor{keywordtype}{real(DP)}                                 :: intlonrad\_xh
1817       \textcolor{comment}{!(out) 積分値}
1818 
1819       intlonrad\_xh = intlon\_x(x\_intrad\_xh(xh))
1820 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ae7648b5c56e7dc5491e3f48e337c6dd0_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a55a5e421874d219c2c0177b6d3f3dbc8}\label{namespaceut__mpi__module_a55a5e421874d219c2c0177b6d3f3dbc8}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!intrad\+\_\+h@{intrad\+\_\+h}}
\index{intrad\+\_\+h@{intrad\+\_\+h}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{intrad\+\_\+h()}{intrad\_h()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::intrad\+\_\+h (\begin{DoxyParamCaption}\item[{real(dp), dimension(kc), intent(in)}]{h }\end{DoxyParamCaption})}



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



References h\+\_\+rad\+\_\+weight, and ua\+\_\+mpi\+\_\+module\+\_\+base\+::mpi\+\_\+comm\+\_\+v.


\begin{DoxyCode}
1825       \textcolor{comment}{!}
1826       \textcolor{comment}{! 1 次元(Z)格子点データの動径方向域積分.}
1827       \textcolor{comment}{!}
1828       \textcolor{comment}{! 1 次元データ f(r) に対して ∫f(r) r^2dr を計算する.}
1829       \textcolor{comment}{!}
1830       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(kc)}, \textcolor{keywordtype}{intent(in)} :: h
1831       \textcolor{comment}{!(in) 1 次元動径格子点データ}
1832 
1833       \textcolor{keywordtype}{real(DP)}                            :: intrad\_h
1834       \textcolor{comment}{!(out) 積分値}
1835 
1836       \textcolor{keywordtype}{real(DP)} :: intradtmp
1837       \textcolor{keywordtype}{integer} :: k, ierr
1838 
1839       intradtmp = 0.0d0
1840       \textcolor{keywordflow}{do} k=1,kc
1841          intradtmp = intradtmp + h(k) * h\_rad\_weight(k)
1842 \textcolor{keywordflow}{      enddo}
1843 
1844       \textcolor{keyword}{CALL }mpi\_allreduce(intradtmp,intrad\_h,1,mpi\_real8, &
1845                          mpi\_sum,mpi\_comm\_v,ierr)
1846 
1847 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a8388dc1b87c16373fc7701b4bbb5f082}\label{namespaceut__mpi__module_a8388dc1b87c16373fc7701b4bbb5f082}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!intrad\+\_\+z@{intrad\+\_\+z}}
\index{intrad\+\_\+z@{intrad\+\_\+z}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{intrad\+\_\+z()}{intrad\_z()}}
{\footnotesize\ttfamily real(dp) function, public ut\+\_\+mpi\+\_\+module\+::intrad\+\_\+z (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:km), intent(in)}]{z }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1851       \textcolor{comment}{!}
1852       \textcolor{comment}{! 1 次元(Z)格子点データの動径方向域積分.}
1853       \textcolor{comment}{!}
1854       \textcolor{comment}{! 1 次元データ f(r) に対して ∫f(r) r^2dr を計算する.}
1855       \textcolor{comment}{!}
1856       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:km)}, \textcolor{keywordtype}{intent(in)} :: z
1857       \textcolor{comment}{!(in) 1 次元動径格子点データ}
1858 
1859       \textcolor{keywordtype}{real(DP)}                            :: intrad\_z
1860       \textcolor{comment}{!(out) 積分値}
1861 
1862       \textcolor{keywordtype}{integer} :: k
1863 
1864       intrad\_z = 0.0d0
1865       \textcolor{keywordflow}{do} k=0,km
1866          intrad\_z = intrad\_z + z(k) * z\_rad\_weight(k)
1867 \textcolor{keywordflow}{      enddo}
1868 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a053ca4217fb17a6c66b5712059f90237}\label{namespaceut__mpi__module_a053ca4217fb17a6c66b5712059f90237}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!nmz\+\_\+poloidalenergyspectrum\+\_\+ut@{nmz\+\_\+poloidalenergyspectrum\+\_\+ut}}
\index{nmz\+\_\+poloidalenergyspectrum\+\_\+ut@{nmz\+\_\+poloidalenergyspectrum\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{nmz\+\_\+poloidalenergyspectrum\+\_\+ut()}{nmz\_poloidalenergyspectrum\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm,-\/nm\+:nm,0\+:km), public ut\+\_\+mpi\+\_\+module\+::nmz\+\_\+poloidalenergyspectrum\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+P\+O\+L\+P\+OT }\end{DoxyParamCaption})}



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



References ua\+\_\+mpi\+\_\+module\+\_\+base\+::mpi\+\_\+comm\+\_\+h, ut\+\_\+drad\+\_\+ut(), ut\+\_\+vmiss, uz\+\_\+rad, uz\+\_\+ut(), wt\+\_\+ut(), wz\+\_\+uz(), and wz\+\_\+wt().


\begin{DoxyCode}
2300       \textcolor{comment}{!}
2301       \textcolor{comment}{! ポロイダルポテンシャルから, ポロイダルエネルギーの}
2302       \textcolor{comment}{! 球面調和函数全波数 n, 帯状波数 m の各成分を計算する.}
2303       \textcolor{comment}{!}
2304       \textcolor{comment}{!  * 全波数 n, 帯状波数 m のポロイダルポテンシャルのスペクトル成分}
2305       \textcolor{comment}{!    φ(n,m,r)から全波数 n, 帯状波数 m 成分のポロイダルエネルギー}
2306       \textcolor{comment}{!    スペクトルは}
2307       \textcolor{comment}{!}
2308       \textcolor{comment}{!      (1/2)n(n+1)4π\{|d(rφ(n,m,r))/dr|^2 + n(n+1)|φ(n,m,r)|^2\}}
2309       \textcolor{comment}{!}
2310       \textcolor{comment}{!    と計算される.}
2311       \textcolor{comment}{!}
2312       \textcolor{comment}{!  * 全てのエネルギースペクトル成分の和を動径積分したもの(r^2の重み無し)}
2313       \textcolor{comment}{!    が球殻内での全エネルギーに等しい.}
2314       \textcolor{comment}{!}
2315       \textcolor{comment}{!  * データの存在しない全波数 n, 帯状波数 m の配列には欠損値が格納される.}
2316       \textcolor{comment}{!    欠損値の値はモジュール変数 ut\_VMiss によって設定できる}
2317       \textcolor{comment}{!    (初期値は -999.0)}
2318       \textcolor{comment}{!}
2319       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: ut\_polpot(nmc,0:lm)
2320       \textcolor{comment}{!(in) 流線関数(スペクトルデータ)}
2321 
2322       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,-nm:nm,0:km)} :: nmz\_poloidalenergyspectrum\_ut
2323       \textcolor{comment}{!(out) エネルギースペクトル(水平全波数 n, 帯状波数 m 空間)}
2324 
2325       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,-nm:nm,0:km)} :: nmz\_work \textcolor{comment}{! 作業領域}
2326 
2327       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)} ::wz\_data1   \textcolor{comment}{! 作業領域}
2328       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)} ::wz\_data2   \textcolor{comment}{! 作業領域}
2329 
2330       \textcolor{keywordtype}{integer} :: l, n, m, nm\_ary(2)
2331 
2332       \textcolor{keywordtype}{integer} :: ierr
2333 
2334       wz\_data1 = wz\_wt(wt\_ut(ut\_polpot))
2335       wz\_data2 = wz\_uz(uz\_rad*uz\_ut(ut\_drad\_ut(ut\_polpot))) &    \textcolor{comment}{! d(rφ)/dr}
2336                + wz\_wt(wt\_ut(ut\_polpot))                         \textcolor{comment}{! = rdφ/dr+φ}
2337 
2338       nmz\_work = 0.0d0
2339       \textcolor{keywordflow}{do} l=1,nc
2340          nm\_ary = nm\_l(l)
2341          n = nm\_ary(1) ; m = abs(nm\_ary(2))
2342          \textcolor{keywordflow}{if} ( n .ge. 0 ) \textcolor{keywordflow}{then}
2343             \textcolor{keywordflow}{if} ( m == 0 ) \textcolor{keywordflow}{then}
2344                nmz\_work(n,0,:) = nmz\_work(n,0,:) &
2345                     +  0.5 * n*(n+1) * (4*pi) &
2346                     * ( wz\_data2(l,:)**2 +  n*(n+1)*wz\_data1(l,:)**2 )
2347                   \textcolor{comment}{!  +  0.5 * n*(n+1) * (4*pi) &}
2348                   \textcolor{comment}{!  * ( wz\_Data2(l,:)**2 +  n*(n+1)*wz\_Data1(l,:)**2 )}
2349             \textcolor{keywordflow}{else}
2350                nmz\_work(n,m,:) = nmz\_work(n,m,:) &
2351                     +  0.5 * n*(n+1) * (4*pi) &
2352                     * ( wz\_data2(l,:)**2 +  n*(n+1)*wz\_data1(l,:)**2 )
2353                   \textcolor{comment}{!  +  0.5 * n*(n+1) * (4*pi) &}
2354                   \textcolor{comment}{!  * ( wz\_Data2(l,:)**2 +  n*(n+1)*wz\_Data1(l,:)**2 )}
2355                nmz\_work(n,-m,:) = nmz\_work(n,-m,:) &
2356                     +  0.5 * n*(n+1) * (4*pi) &
2357                     * ( wz\_data2(l,:)**2 +  n*(n+1)*wz\_data1(l,:)**2 )
2358                   \textcolor{comment}{! +  0.5 * n*(n+1) * (4*pi) &}
2359                   \textcolor{comment}{! * ( wz\_Data2(l,:)**2 +  n*(n+1)*wz\_Data1(l,:)**2 )}
2360 \textcolor{keywordflow}{            endif}
2361 \textcolor{keywordflow}{         endif}
2362 \textcolor{keywordflow}{      enddo}
2363 
2364       \textcolor{keyword}{CALL }mpi\_allreduce(nmz\_work,nmz\_poloidalenergyspectrum\_ut, &
2365                          (nm+1)*(2*nm+1)*(km+1), &
2366                          mpi\_real8,mpi\_sum,mpi\_comm\_h,ierr)
2367 
2368       \textcolor{keywordflow}{do} m=1,nm
2369          \textcolor{keywordflow}{do} n=0,m-1
2370             nmz\_poloidalenergyspectrum\_ut(n,m,:)  = ut\_vmiss
2371             nmz\_poloidalenergyspectrum\_ut(n,-m,:) = ut\_vmiss
2372 \textcolor{keywordflow}{         enddo}
2373 \textcolor{keywordflow}{      enddo}
2374 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a053ca4217fb17a6c66b5712059f90237_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a19fa52fd395bdc6fbcb5ca9ea87d4166}\label{namespaceut__mpi__module_a19fa52fd395bdc6fbcb5ca9ea87d4166}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!nmz\+\_\+toroidalenergyspectrum\+\_\+ut@{nmz\+\_\+toroidalenergyspectrum\+\_\+ut}}
\index{nmz\+\_\+toroidalenergyspectrum\+\_\+ut@{nmz\+\_\+toroidalenergyspectrum\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{nmz\+\_\+toroidalenergyspectrum\+\_\+ut()}{nmz\_toroidalenergyspectrum\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm,-\/nm\+:nm,0\+:km), public ut\+\_\+mpi\+\_\+module\+::nmz\+\_\+toroidalenergyspectrum\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+T\+O\+R\+P\+OT }\end{DoxyParamCaption})}



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



References ua\+\_\+mpi\+\_\+module\+\_\+base\+::mpi\+\_\+comm\+\_\+h, ut\+\_\+vmiss, wt\+\_\+ut(), and wz\+\_\+wt().


\begin{DoxyCode}
2191       \textcolor{comment}{!}
2192       \textcolor{comment}{! トロイダルポテンシャルから, トロイダルエネルギーの}
2193       \textcolor{comment}{! 球面調和函数全波数 n, 帯状波数 m の各成分を計算する}
2194       \textcolor{comment}{!}
2195       \textcolor{comment}{!  * 全波数 n, 帯状波数 m のトロイダルポテンシャルのスペクトル成分}
2196       \textcolor{comment}{!    ψ(n,m,r)から全波数 n, 帯状波数 m 成分のトロイダルエネルギー}
2197       \textcolor{comment}{!    スペクトルは  (1/2)n(n+1)4πr^2|ψ(n,m,r)|^2  と計算される.}
2198       \textcolor{comment}{!}
2199       \textcolor{comment}{!  * 全てのエネルギースペクトル成分の和を動径積分したもの(r^2の重み無し)}
2200       \textcolor{comment}{!    が球殻内での全エネルギーに等しい.}
2201       \textcolor{comment}{!}
2202       \textcolor{comment}{!  * データの存在しない全波数 n, 帯状波数 m の配列には欠損値が格納される.}
2203       \textcolor{comment}{!    ut\_VMiss によって設定できる (初期値は -999.0)}
2204       \textcolor{comment}{!}
2205       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: ut\_torpot(nmc,0:lm)
2206       \textcolor{comment}{!(in) 流線関数(スペクトルデータ)}
2207 
2208       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,-nm:nm,0:km)} :: nmz\_toroidalenergyspectrum\_ut
2209       \textcolor{comment}{!(out) エネルギースペクトル(水平全波数 n, 帯状波数 m 空間)}
2210 
2211       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,-nm:nm,0:km)} :: nmz\_work \textcolor{comment}{! 作業領域}
2212 
2213       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)} ::wz\_data      \textcolor{comment}{! 作業領域}
2214 
2215       \textcolor{keywordtype}{integer} :: l, n, m, nm\_ary(2)
2216       \textcolor{keywordtype}{integer} :: ierr
2217 
2218       wz\_data = wz\_wt(wt\_ut(ut\_torpot))
2219 
2220       nmz\_work = 0.0d0
2221       \textcolor{keywordflow}{do} l=1,nc
2222          nm\_ary = nm\_l(l)
2223          n = nm\_ary(1) ; m = abs(nm\_ary(2))
2224          \textcolor{keywordflow}{if} ( n .ge. 0 ) \textcolor{keywordflow}{then}
2225             \textcolor{keywordflow}{if} ( m == 0 ) \textcolor{keywordflow}{then}
2226                nmz\_work(n,0,:) = nmz\_work(n,0,:) &
2227                     +  0.5 * n*(n+1) * (4*pi) * z\_rad**2 * wz\_data(l,:)**2
2228                   \textcolor{comment}{!  + 0.5 * n*(n+1) * (4*pi) * z\_Rad**2 * wz\_Data(l,:)**2}
2229             \textcolor{keywordflow}{else}
2230                nmz\_work(n,m,:) = nmz\_work(n,m,:) &
2231                     +  0.5 * n*(n+1) * (4*pi) * z\_rad**2 * wz\_data(l,:)**2
2232                   \textcolor{comment}{!  +  0.5 * n*(n+1) * (4*pi) * z\_Rad**2 * wz\_Data(l,:)**2}
2233                nmz\_work(n,-m,:) = nmz\_work(n,-m,:) &
2234                     +  0.5 * n*(n+1) * (4*pi) * z\_rad**2 * wz\_data(l,:)**2
2235                   \textcolor{comment}{!  +  0.5 * n*(n+1) * (4*pi) * z\_Rad**2 * wz\_Data(l,:)**2}
2236 \textcolor{keywordflow}{            endif}
2237 \textcolor{keywordflow}{         endif}
2238 \textcolor{keywordflow}{      enddo}
2239 
2240       \textcolor{keyword}{CALL }mpi\_allreduce(nmz\_work,nmz\_toroidalenergyspectrum\_ut, &
2241                          (nm+1)*(2*nm+1)*(km+1), &
2242                          mpi\_real8,mpi\_sum,mpi\_comm\_h,ierr)
2243 
2244       \textcolor{keywordflow}{do} m=1,nm
2245          \textcolor{keywordflow}{do} n=0,m-1
2246             nmz\_toroidalenergyspectrum\_ut(n,m,:)  = ut\_vmiss
2247             nmz\_toroidalenergyspectrum\_ut(n,-m,:) = ut\_vmiss
2248 \textcolor{keywordflow}{         enddo}
2249 \textcolor{keywordflow}{      enddo}
2250 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a19fa52fd395bdc6fbcb5ca9ea87d4166_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_acd3b4b24dfaf01c365d9adbcbb637898}\label{namespaceut__mpi__module_acd3b4b24dfaf01c365d9adbcbb637898}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!nz\+\_\+poloidalenergyspectrum\+\_\+ut@{nz\+\_\+poloidalenergyspectrum\+\_\+ut}}
\index{nz\+\_\+poloidalenergyspectrum\+\_\+ut@{nz\+\_\+poloidalenergyspectrum\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{nz\+\_\+poloidalenergyspectrum\+\_\+ut()}{nz\_poloidalenergyspectrum\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm,0\+:km), public ut\+\_\+mpi\+\_\+module\+::nz\+\_\+poloidalenergyspectrum\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+P\+O\+L\+P\+OT }\end{DoxyParamCaption})}



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



References ua\+\_\+mpi\+\_\+module\+\_\+base\+::mpi\+\_\+comm\+\_\+h, ut\+\_\+drad\+\_\+ut(), uz\+\_\+rad, uz\+\_\+ut(), wt\+\_\+ut(), wz\+\_\+uz(), and wz\+\_\+wt().


\begin{DoxyCode}
2378       \textcolor{comment}{!}
2379       \textcolor{comment}{! ポロイダルポテンシャルから, ポロイダルエネルギーの}
2380       \textcolor{comment}{! 球面調和函数全波数の各成分を計算する}
2381       \textcolor{comment}{!}
2382       \textcolor{comment}{!  * 全波数 n, 帯状波数 m のポロイダルポテンシャルのスペクトル成分}
2383       \textcolor{comment}{!    φ(n,m,r)から全波数 n 成分のポロイダルエネルギースペクトルは}
2384       \textcolor{comment}{!}
2385       \textcolor{comment}{!      Σ[m=-n]^n ((1/2)n(n+1)4πr^2\{[d(rφ(n,m,r))/dr]^2}
2386       \textcolor{comment}{!                 + n(n+1)φ(n,m,r)^2\}}
2387       \textcolor{comment}{!}
2388       \textcolor{comment}{!    と計算される.}
2389       \textcolor{comment}{!}
2390       \textcolor{comment}{!  * 全ての全波数に対してのエネルギースペクトル成分の和を動径積分したもの}
2391       \textcolor{comment}{!    (r^2の重み無し)が球殻内での全エネルギーに等しい.}
2392       \textcolor{comment}{!}
2393       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_polpot
2394       \textcolor{comment}{!(in) ポロイダルポテンシャル}
2395 
2396       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,0:km)} :: nz\_poloidalenergyspectrum\_ut
2397       \textcolor{comment}{!(out) エネルギースペクトルポロイダル成分}
2398 
2399       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)} ::wz\_data1   \textcolor{comment}{! 作業領域}
2400       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)} ::wz\_data2   \textcolor{comment}{! 作業領域}
2401       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,0:km)}     ::nz\_work
2402       \textcolor{keywordtype}{integer} :: l, n, m, nm\_ary(2)
2403       \textcolor{keywordtype}{integer} :: ierr
2404       \textcolor{keywordtype}{real(DP)} :: factor
2405 
2406       nz\_work = 0.0d0
2407       wz\_data1 = wz\_wt(wt\_ut(ut\_polpot))
2408       wz\_data2 = wz\_uz(uz\_rad*uz\_ut(ut\_drad\_ut(ut\_polpot))) &    \textcolor{comment}{! d(rφ)/dr}
2409                + wz\_wt(wt\_ut(ut\_polpot))                         \textcolor{comment}{! = rdφ/dr+φ}
2410 
2411       \textcolor{keywordflow}{do} l=1,nc
2412          nm\_ary = nm\_l(l)
2413          n = nm\_ary(1) ; m = abs(nm\_ary(2))
2414          \textcolor{keywordflow}{if} ( m == 0 ) \textcolor{keywordflow}{then}
2415             factor = 1.0d0
2416          \textcolor{keywordflow}{else}
2417             factor = 2.0d0
2418 \textcolor{keywordflow}{         endif}
2419          \textcolor{keywordflow}{if} ( n .ge. 0 ) \textcolor{keywordflow}{then}
2420             nz\_work(n,:) = nz\_work(n,:) &
2421               + factor * 0.5* n*(n+1)* (4*pi) &
2422               *( wz\_data2(l,:)**2 + n*(n+1)*wz\_data1(l,:)**2 )
2423 \textcolor{keywordflow}{         endif}
2424 \textcolor{keywordflow}{      enddo}
2425 
2426       \textcolor{keyword}{CALL }mpi\_allreduce(nz\_work,nz\_poloidalenergyspectrum\_ut,(nm+1)*(km+1), &
2427                          mpi\_real8,mpi\_sum,mpi\_comm\_h,ierr)
2428 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_acd3b4b24dfaf01c365d9adbcbb637898_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a94caa9b0be8c047fa7171796685908a9}\label{namespaceut__mpi__module_a94caa9b0be8c047fa7171796685908a9}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!nz\+\_\+toroidalenergyspectrum\+\_\+ut@{nz\+\_\+toroidalenergyspectrum\+\_\+ut}}
\index{nz\+\_\+toroidalenergyspectrum\+\_\+ut@{nz\+\_\+toroidalenergyspectrum\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{nz\+\_\+toroidalenergyspectrum\+\_\+ut()}{nz\_toroidalenergyspectrum\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm,0\+:km), public ut\+\_\+mpi\+\_\+module\+::nz\+\_\+toroidalenergyspectrum\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+T\+O\+R\+P\+OT }\end{DoxyParamCaption})}



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



References ua\+\_\+mpi\+\_\+module\+\_\+base\+::mpi\+\_\+comm\+\_\+h, wt\+\_\+ut(), and wz\+\_\+wt().


\begin{DoxyCode}
2254       \textcolor{comment}{!}
2255       \textcolor{comment}{! トロイダルポテンシャルから, トロイダルエネルギーの}
2256       \textcolor{comment}{! 球面調和函数全波数の各成分を計算する.}
2257       \textcolor{comment}{!}
2258       \textcolor{comment}{!  * 全波数 n, 帯状波数 m のトロイダルポテンシャルのスペクトル成分}
2259       \textcolor{comment}{!    ψ(n,m,r)から全波数 n 成分のトロイダルエネルギースペクトルは}
2260       \textcolor{comment}{!    Σ[m=-n]^n(1/2)n(n+1)4πr^2ψ(n,m,r)^2 と計算される.}
2261       \textcolor{comment}{!}
2262       \textcolor{comment}{! * 全てのエネルギースペクトル成分の和を動径積分したもの(r^2の重み無し)}
2263       \textcolor{comment}{!    が球殻内での全エネルギーに等しい.}
2264       \textcolor{comment}{!}
2265       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_torpot
2266       \textcolor{comment}{!(in) トロイダルポテンシャル}
2267 
2268       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,0:km)} :: nz\_toroidalenergyspectrum\_ut
2269       \textcolor{comment}{!(out) エネルギースペクトルトロイダル成分}
2270 
2271       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)}   :: wz\_data   \textcolor{comment}{! 作業領域}
2272       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:nm,0:km)} :: nz\_work
2273       \textcolor{keywordtype}{integer} :: l, n, m, nm\_ary(2)
2274       \textcolor{keywordtype}{integer} :: ierr
2275       \textcolor{keywordtype}{real(DP)} :: factor
2276 
2277       nz\_work = 0.0d0
2278       wz\_data = wz\_wt(wt\_ut(ut\_torpot))
2279       \textcolor{keywordflow}{do} l=1,nc
2280          nm\_ary = nm\_l(l)
2281          n = nm\_ary(1) ; m = abs(nm\_ary(2))
2282          \textcolor{keywordflow}{if} ( m == 0 ) \textcolor{keywordflow}{then}
2283             factor = 1.0d0
2284          \textcolor{keywordflow}{else}
2285             factor = 2.0d0
2286 \textcolor{keywordflow}{         endif}
2287          \textcolor{keywordflow}{if} ( n .ge. 0 ) \textcolor{keywordflow}{then}
2288             nz\_work(n,:) = nz\_work(n,:) &
2289               + factor * 0.5 * n*(n+1)* (4*pi) * z\_rad**2 * wz\_data(l,:)**2
2290             \textcolor{comment}{!  + 0.5 * n*(n+1)* (4*pi) * z\_Rad**2 * wz\_Data(l,:)**2}
2291 \textcolor{keywordflow}{         endif}
2292 \textcolor{keywordflow}{      enddo}
2293 
2294       \textcolor{keyword}{CALL }mpi\_allreduce(nz\_work,nz\_toroidalenergyspectrum\_ut,(nm+1)*(km+1), &
2295                          mpi\_real8,mpi\_sum,mpi\_comm\_h,ierr)
2296 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a94caa9b0be8c047fa7171796685908a9_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a0c456da020a82625299556e38f09af9c}\label{namespaceut__mpi__module_a0c456da020a82625299556e38f09af9c}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ua\+\_\+laplah\+\_\+ua@{ua\+\_\+laplah\+\_\+ua}}
\index{ua\+\_\+laplah\+\_\+ua@{ua\+\_\+laplah\+\_\+ua}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ua\+\_\+laplah\+\_\+ua()}{ua\_laplah\_ua()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,size(ua\+\_\+data,2)), public ut\+\_\+mpi\+\_\+module\+::ua\+\_\+laplah\+\_\+ua (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,\+:), intent(in)}]{ua\+\_\+data }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1184       \textcolor{comment}{!}
1185       \textcolor{comment}{! 入力スペクトルデータにラプラシアン}
1186       \textcolor{comment}{!}
1187       \textcolor{comment}{!    ▽^2 = 1/cos^2φ・∂^2/∂λ^2 + 1/cosφ・∂/∂φ(cosφ∂/∂φ)}
1188       \textcolor{comment}{!}
1189       \textcolor{comment}{! を作用する(多層用).}
1190       \textcolor{comment}{!}
1191       \textcolor{comment}{! スペクトルデータのラプラシアンとは, 対応する格子点データに}
1192       \textcolor{comment}{! ラプラシアンを作用させたデータのスペクトル変換のことである.}
1193       \textcolor{comment}{!}
1194       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}  :: ua\_data(:,:)
1195       \textcolor{comment}{!(in) 入力スペクトルデータ}
1196       \textcolor{keywordtype}{real(DP)}              :: ua\_laplah\_ua(nmc,size(ua\_data,2))
1197       \textcolor{comment}{!(out) 入力スペクトルデータのラプラシアン}
1198 
1199       ua\_laplah\_ua  = ua\_lapla\_ua(ua\_data)
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_ab8bb92d5ff4bc9274778d7bd4c8c30ef}\label{namespaceut__mpi__module_ab8bb92d5ff4bc9274778d7bd4c8c30ef}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ua\+\_\+laplahinv\+\_\+ua@{ua\+\_\+laplahinv\+\_\+ua}}
\index{ua\+\_\+laplahinv\+\_\+ua@{ua\+\_\+laplahinv\+\_\+ua}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ua\+\_\+laplahinv\+\_\+ua()}{ua\_laplahinv\_ua()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,size(ua\+\_\+data,2)), public ut\+\_\+mpi\+\_\+module\+::ua\+\_\+laplahinv\+\_\+ua (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:,\+:), intent(in)}]{ua\+\_\+data }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1203       \textcolor{comment}{!}
1204       \textcolor{comment}{! 入力スペクトルデータにラプラシアン}
1205       \textcolor{comment}{!}
1206       \textcolor{comment}{!    ▽^2 = 1/cos^2φ・∂^2/∂λ^2 + 1/cosφ・∂/∂φ(cosφ∂/∂φ)}
1207       \textcolor{comment}{!}
1208       \textcolor{comment}{! を作用する(多層用).}
1209       \textcolor{comment}{!}
1210       \textcolor{comment}{! スペクトルデータのラプラシアンとは, 対応する格子点データに}
1211       \textcolor{comment}{! ラプラシアンを作用させたデータのスペクトル変換のことである.}
1212       \textcolor{comment}{!}
1213       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}  :: ua\_data(:,:)
1214       \textcolor{comment}{!(in) 入力スペクトルデータ}
1215       \textcolor{keywordtype}{real(DP)}              :: ua\_laplahinv\_ua(nmc,size(ua\_data,2))
1216       \textcolor{comment}{!(out) 入力スペクトルデータのラプラシアン}
1217 
1218       ua\_laplahinv\_ua  = ua\_laplainv\_ua(ua\_data)
1219 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a3a5ac97580cc297d5b1573b95d0d2aea}\label{namespaceut__mpi__module_a3a5ac97580cc297d5b1573b95d0d2aea}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+boundariesgrid@{ut\+\_\+boundariesgrid}}
\index{ut\+\_\+boundariesgrid@{ut\+\_\+boundariesgrid}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+boundariesgrid()}{ut\_boundariesgrid()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+boundariesgrid (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut,  }\item[{real(dp), dimension(nmc,2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
2496       \textcolor{comment}{!}
2497       \textcolor{comment}{! スペクトルデータにディリクレ・ノイマン境界条件を適用する}
2498       \textcolor{comment}{! 実空間での境界条件適用}
2499       \textcolor{comment}{!}
2500       \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
2501       \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには}
2502       \textcolor{comment}{! ut\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
2503       \textcolor{comment}{! 等しくしておく必要がある.}
2504       \textcolor{comment}{!}
2505       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}      :: ut
2506               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
2507 
2508       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
2509               \textcolor{comment}{!(in) 境界での 値/勾配 分布を水平スペクトル変換したものを与える.}
2510               \textcolor{comment}{!    省略時は値/勾配 0 となる.}
2511 
2512       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}         :: cond
2513               \textcolor{comment}{!(in) 境界条件. 省略時は 'DD'}
2514               \textcolor{comment}{!        DD : 両端ディリクレ条件}
2515               \textcolor{comment}{!        DN : 上端ディリクレ, 下端ノイマン条件}
2516               \textcolor{comment}{!        ND : 上端ノイマン, 下端ディリクレ条件}
2517               \textcolor{comment}{!        NN : 両端ノイマン条件}
2518 
2519       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
2520          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2521             \textcolor{keyword}{call }at\_boundariesgrid\_dd(ut,values)
2522          \textcolor{keywordflow}{else}
2523             \textcolor{keyword}{call }at\_boundariesgrid\_dd(ut)
2524 \textcolor{keywordflow}{         endif}
2525          \textcolor{keywordflow}{return}
2526 \textcolor{keywordflow}{      endif}
2527 
2528       \textcolor{keywordflow}{select case}(cond)
2529       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'})
2530          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2531             \textcolor{keyword}{call }at\_boundariesgrid\_nn(ut,values)
2532          \textcolor{keywordflow}{else}
2533             \textcolor{keyword}{call }at\_boundariesgrid\_nn(ut)
2534 \textcolor{keywordflow}{         endif}
2535       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'})
2536          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2537             \textcolor{keyword}{call }at\_boundariesgrid\_dn(ut,values)
2538          \textcolor{keywordflow}{else}
2539             \textcolor{keyword}{call }at\_boundariesgrid\_dn(ut)
2540 \textcolor{keywordflow}{         endif}
2541       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'})
2542          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2543             \textcolor{keyword}{call }at\_boundariesgrid\_nd(ut,values)
2544          \textcolor{keywordflow}{else}
2545             \textcolor{keyword}{call }at\_boundariesgrid\_nd(ut)
2546 \textcolor{keywordflow}{         endif}
2547       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'})
2548          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2549             \textcolor{keyword}{call }at\_boundariesgrid\_dd(ut,values)
2550          \textcolor{keywordflow}{else}
2551             \textcolor{keyword}{call }at\_boundariesgrid\_dd(ut)
2552 \textcolor{keywordflow}{         endif}
2553 \textcolor{keywordflow}{      case default}
2554          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_BoundariesGrid'},\textcolor{stringliteral}{'B.C. not supported'})
2555 \textcolor{keywordflow}{      end select}
2556 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a3713a311f89ae3bfb0618773aef5c1c9}\label{namespaceut__mpi__module_a3713a311f89ae3bfb0618773aef5c1c9}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+boundariestau@{ut\+\_\+boundariestau}}
\index{ut\+\_\+boundariestau@{ut\+\_\+boundariestau}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+boundariestau()}{ut\_boundariestau()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+boundariestau (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut,  }\item[{real(dp), dimension(nmc,2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
2434       \textcolor{comment}{!}
2435       \textcolor{comment}{! スペクトルデータにディリクレ・ノイマン境界条件を適用する}
2436       \textcolor{comment}{! Chebyshev 空間での境界条件適用(タウ法)}
2437       \textcolor{comment}{!}
2438       \textcolor{comment}{! チェビシェフ空間において境界条件を満たすべく高次の係数を}
2439       \textcolor{comment}{! 定める方法をとっている(タウ法).}
2440       \textcolor{comment}{!}
2441       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}      :: ut
2442       \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
2443 
2444       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
2445       \textcolor{comment}{!(in) 境界での 値/勾配 分布を水平スペクトル変換したものを与える.}
2446       \textcolor{comment}{!     省略時は値/勾配 0 となる.}
2447 
2448       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}         :: cond
2449       \textcolor{comment}{!(in) 境界条件. 省略時は 'DD'}
2450       \textcolor{comment}{!        DD : 両端ディリクレ条件}
2451       \textcolor{comment}{!        DN : 上端ディリクレ, 下端ノイマン条件}
2452       \textcolor{comment}{!        ND : 上端ノイマン, 下端ディリクレ条件}
2453       \textcolor{comment}{!        NN : 両端ノイマン条件}
2454 
2455       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
2456          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2457             \textcolor{keyword}{call }at\_boundariestau\_dd(ut,values)
2458          \textcolor{keywordflow}{else}
2459             \textcolor{keyword}{call }at\_boundariestau\_dd(ut)
2460 \textcolor{keywordflow}{         endif}
2461          \textcolor{keywordflow}{return}
2462 \textcolor{keywordflow}{      endif}
2463 
2464       \textcolor{keywordflow}{select case}(cond)
2465       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'})
2466          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2467             \textcolor{keyword}{call }at\_boundariestau\_nn(ut,values)
2468          \textcolor{keywordflow}{else}
2469             \textcolor{keyword}{call }at\_boundariestau\_nn(ut)
2470 \textcolor{keywordflow}{         endif}
2471       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'})
2472          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2473             \textcolor{keyword}{call }at\_boundariestau\_dn(ut,values)
2474          \textcolor{keywordflow}{else}
2475             \textcolor{keyword}{call }at\_boundariestau\_dn(ut)
2476 \textcolor{keywordflow}{         endif}
2477       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'})
2478          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2479             \textcolor{keyword}{call }at\_boundariestau\_nd(ut,values)
2480          \textcolor{keywordflow}{else}
2481             \textcolor{keyword}{call }at\_boundariestau\_nd(ut)
2482 \textcolor{keywordflow}{         endif}
2483       \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'})
2484          \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
2485             \textcolor{keyword}{call }at\_boundariestau\_dd(ut,values)
2486          \textcolor{keywordflow}{else}
2487             \textcolor{keyword}{call }at\_boundariestau\_dd(ut)
2488 \textcolor{keywordflow}{         endif}
2489 \textcolor{keywordflow}{      case default}
2490          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_BoundariesTau'},\textcolor{stringliteral}{'B.C. not supported'})
2491 \textcolor{keywordflow}{      end select}
2492 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_ac5fa4bed64e51c1e52f49d146dfb02b1}\label{namespaceut__mpi__module_ac5fa4bed64e51c1e52f49d146dfb02b1}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh@{ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh}}
\index{ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh@{ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh()}{ut\_div\_xvh\_xvh\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vlon,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vlat,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vrad }\end{DoxyParamCaption})}



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



References ut\+\_\+divlat\+\_\+xvh(), ut\+\_\+divlon\+\_\+xvh(), ut\+\_\+divrad\+\_\+ut(), and ut\+\_\+xvh().


\begin{DoxyCode}
987       \textcolor{comment}{!}
988       \textcolor{comment}{! べクトル成分である 3 つの格子データに発散を作用させた}
989       \textcolor{comment}{! スペクトルデータを返す.}
990       \textcolor{comment}{!}
991       \textcolor{comment}{! 第 1, 2 ,3 引数(u,v,w)がそれぞれベクトルの経度成分, 緯度成分,}
992       \textcolor{comment}{! 動径成分を表し, 発散は}
993       \textcolor{comment}{!}
994       \textcolor{comment}{!      1/rcosφ・∂u/∂λ + 1/rcosφ・∂(v cosφ)/∂φ}
995       \textcolor{comment}{!    + 1/r^2 ∂/∂r (r^2 w)}
996       \textcolor{comment}{!}
997       \textcolor{comment}{! と計算される.}
998       \textcolor{comment}{!}
999       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlon
1000       \textcolor{comment}{!(in) ベクトル場の経度成分}
1001 
1002       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlat
1003       \textcolor{comment}{!(in) ベクトル場の緯度成分}
1004 
1005       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vrad
1006       \textcolor{comment}{!(in) ベクトル場の動径成分}
1007 
1008       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}                    :: ut\_div\_xvh\_xvh\_xvh
1009       \textcolor{comment}{!(out) ベクトル場の発散}
1010 
1011       ut\_div\_xvh\_xvh\_xvh =   ut\_divlon\_xvh(xvh\_vlon) &
1012                            + ut\_divlat\_xvh(xvh\_vlat) &
1013                            + ut\_divrad\_ut(ut\_xvh(xvh\_vrad))
1014 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ac5fa4bed64e51c1e52f49d146dfb02b1_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a7aa8f1d85a541b53e55bd124797ff0d2}\label{namespaceut__mpi__module_a7aa8f1d85a541b53e55bd124797ff0d2}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+divlat\+\_\+xvh@{ut\+\_\+divlat\+\_\+xvh}}
\index{ut\+\_\+divlat\+\_\+xvh@{ut\+\_\+divlat\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+divlat\+\_\+xvh()}{ut\_divlat\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+divlat\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References ut\+\_\+uz(), and xvh\+\_\+rad.


\begin{DoxyCode}
973       \textcolor{comment}{!}
974       \textcolor{comment}{! 格子データに発散型緯度微分 1/rcosφ・∂(f cosφ)/∂φ を}
975       \textcolor{comment}{! 作用させたスペクトルデータを返す.}
976       \textcolor{comment}{!}
977       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)}   :: xvh
978       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
979 
980       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}       :: ut\_divlat\_xvh
981       \textcolor{comment}{!(out) 発散型緯度微分を作用された 2 次元スペクトルデータ}
982 
983       ut\_divlat\_xvh = ut\_uz(ua\_divlat\_xvb(xvh/xvh\_rad))
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a7aa8f1d85a541b53e55bd124797ff0d2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ac6f444520ae73cff7e591317c10ff66b}\label{namespaceut__mpi__module_ac6f444520ae73cff7e591317c10ff66b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+divlon\+\_\+xvh@{ut\+\_\+divlon\+\_\+xvh}}
\index{ut\+\_\+divlon\+\_\+xvh@{ut\+\_\+divlon\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+divlon\+\_\+xvh()}{ut\_divlon\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+divlon\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References ut\+\_\+uz(), and xvh\+\_\+rad.


\begin{DoxyCode}
958       \textcolor{comment}{!}
959       \textcolor{comment}{! 格子点データに発散型経度微分 1/rcosφ・∂/∂λ を作用させた}
960       \textcolor{comment}{! スペクトルデータを返す.}
961       \textcolor{comment}{!}
962       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
963       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
964 
965       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}                    :: ut\_divlon\_xvh
966       \textcolor{comment}{!(out) 発散型経度微分を作用された 2 次元スペクトルデータ}
967 
968       ut\_divlon\_xvh = ut\_uz(ua\_divlon\_xvb(xvh/xvh\_rad))
969 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ac6f444520ae73cff7e591317c10ff66b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a8b1ac16a6b263fd2ac14774d348884e8}\label{namespaceut__mpi__module_a8b1ac16a6b263fd2ac14774d348884e8}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+divrad\+\_\+ut@{ut\+\_\+divrad\+\_\+ut}}
\index{ut\+\_\+divrad\+\_\+ut@{ut\+\_\+divrad\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+divrad\+\_\+ut()}{ut\_divrad\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+divrad\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References ut\+\_\+drad\+\_\+ut(), ut\+\_\+uz(), uz\+\_\+rad, and uz\+\_\+ut().


\begin{DoxyCode}
1139       \textcolor{comment}{!}
1140       \textcolor{comment}{! 入力スペクトルデータに発散型動径微分}
1141       \textcolor{comment}{!}
1142       \textcolor{comment}{!       1/r^2 ∂/∂r (r^2 .)= ∂/∂r + 2/r}
1143       \textcolor{comment}{!}
1144       \textcolor{comment}{! を作用する.}
1145       \textcolor{comment}{!}
1146       \textcolor{comment}{! スペクトルデータの発散型動径微分とは, 対応する格子点データに}
1147       \textcolor{comment}{! 発散型動径微分を作用させたデータのスペクトル変換のことである.}
1148       \textcolor{comment}{!}
1149       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
1150       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
1151 
1152       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_divrad\_ut
1153       \textcolor{comment}{!(out) 発散型動径微分を作用された 2 次元スペクトルデータ}
1154 
1155 \textcolor{comment}{!      ut\_DivRad\_ut = ut\_uz(uz\_ut(ut\_Drad\_ut(ut\_uz(uz\_Rad**2*uz\_ut(ut))))/uz\_Rad**2)}
1156 
1157       ut\_divrad\_ut = ut\_drad\_ut(ut) + ut\_uz(2/uz\_rad*uz\_ut(ut))
1158 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a8b1ac16a6b263fd2ac14774d348884e8_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a1d581eb8d732be44ff4407f432b34806}\label{namespaceut__mpi__module_a1d581eb8d732be44ff4407f432b34806}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+drad\+\_\+ut@{ut\+\_\+drad\+\_\+ut}}
\index{ut\+\_\+drad\+\_\+ut@{ut\+\_\+drad\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+drad\+\_\+ut()}{ut\_drad\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+drad\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1122       \textcolor{comment}{!}
1123       \textcolor{comment}{! 入力スペクトルデータに動径微分 ∂/∂r を作用する.}
1124       \textcolor{comment}{!}
1125       \textcolor{comment}{! スペクトルデータの動径微分とは, 対応する格子点データに動径微分を}
1126       \textcolor{comment}{! 作用させたデータのスペクトル変換のことである.}
1127       \textcolor{comment}{!}
1128       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
1129       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
1130 
1131       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_drad\_ut
1132       \textcolor{comment}{!(in) 動径微分された2 次元球面調和函数チェビシェフスペクトルデータ}
1133 
1134       ut\_drad\_ut = at\_dr\_at(ut)
1135 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a29e1d25e7a719a649e71919a08892895}\label{namespaceut__mpi__module_a29e1d25e7a719a649e71919a08892895}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+l2\+\_\+ut@{ut\+\_\+l2\+\_\+ut}}
\index{ut\+\_\+l2\+\_\+ut@{ut\+\_\+l2\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+l2\+\_\+ut()}{ut\_l2\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+l2\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References ua\+\_\+laplah\+\_\+ua().


\begin{DoxyCode}
1281       \textcolor{comment}{!}
1282       \textcolor{comment}{! 入力スペクトルデータに L^2 演算子(=-水平ラプラシアン)を作用する.}
1283       \textcolor{comment}{!}
1284       \textcolor{comment}{! L^2 演算子は単位球面上の水平ラプラシアンの逆符号にあたる.}
1285       \textcolor{comment}{!  入力スペクトルデ ータに対応する格子点データに演算子}
1286       \textcolor{comment}{!}
1287       \textcolor{comment}{!     L^2 = -1/cos^2φ・∂^2/∂λ^2 - 1/cosφ・∂/∂φ(cosφ∂/∂φ)}
1288       \textcolor{comment}{!}
1289       \textcolor{comment}{! を作用させたデータのスペクトル変換が返される.}
1290       \textcolor{comment}{!}
1291       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
1292       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
1293 
1294       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_l2\_ut
1295       \textcolor{comment}{!(out) L^2 演算子を作用された 2 次元スペクトルデータ}
1296 
1297       ut\_l2\_ut = -ua\_laplah\_ua(ut)
1298 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a29e1d25e7a719a649e71919a08892895_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a9c13b44212a45229669fd8bcbd53150b}\label{namespaceut__mpi__module_a9c13b44212a45229669fd8bcbd53150b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+l2inv\+\_\+ut@{ut\+\_\+l2inv\+\_\+ut}}
\index{ut\+\_\+l2inv\+\_\+ut@{ut\+\_\+l2inv\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+l2inv\+\_\+ut()}{ut\_l2inv\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+l2inv\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References ua\+\_\+laplahinv\+\_\+ua().


\begin{DoxyCode}
1302       \textcolor{comment}{!}
1303       \textcolor{comment}{! 入力スペクトルデータに L^2 演算子の逆演算(-逆水平ラプラシアン)を}
1304       \textcolor{comment}{! 作用する.}
1305       \textcolor{comment}{!}
1306       \textcolor{comment}{! スペクトルデータに L^2 演算子を作用させる関数 ut\_L2\_ut の逆計算を}
1307       \textcolor{comment}{! 行う関数である.}
1308       \textcolor{comment}{!}
1309       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
1310       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
1311 
1312       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_l2inv\_ut
1313       \textcolor{comment}{!(out) L^2 演算子の逆演算を作用された 2 次元スペクトルデータ}
1314 
1315       ut\_l2inv\_ut = -ua\_laplahinv\_ua(ut)
1316 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a9c13b44212a45229669fd8bcbd53150b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a555784ac52026af836b059e5455877e0}\label{namespaceut__mpi__module_a555784ac52026af836b059e5455877e0}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+lapla\+\_\+ut@{ut\+\_\+lapla\+\_\+ut}}
\index{ut\+\_\+lapla\+\_\+ut@{ut\+\_\+lapla\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+lapla\+\_\+ut()}{ut\_lapla\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+lapla\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References ua\+\_\+laplah\+\_\+ua(), ut\+\_\+divrad\+\_\+ut(), ut\+\_\+drad\+\_\+ut(), ut\+\_\+uz(), uz\+\_\+rad, and uz\+\_\+ut().


\begin{DoxyCode}
1223       \textcolor{comment}{! 入力スペクトルデータにラプラシアン}
1224       \textcolor{comment}{!}
1225       \textcolor{comment}{!     ▽^2 =   1/r^2 cos^2φ・∂^2/∂λ^2}
1226       \textcolor{comment}{!            + 1/r^2 cosφ・∂/∂φ(cosφ∂/∂φ)}
1227       \textcolor{comment}{!            + 1/r^2 ∂/∂r (r^2 ∂/∂r)}
1228       \textcolor{comment}{!}
1229       \textcolor{comment}{! を作用する.}
1230       \textcolor{comment}{!}
1231       \textcolor{comment}{! スペクトルデータのラプラシアンとは, 対応する格子点データに}
1232       \textcolor{comment}{! ラプラシアンを作用させたデータのスペクトル変換のことである.}
1233       \textcolor{comment}{!}
1234       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
1235       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
1236 
1237       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_lapla\_ut
1238       \textcolor{comment}{!(out) ラプラシアンを作用された 2 次元スペクトルデータ}
1239 
1240       ut\_lapla\_ut = ut\_divrad\_ut(ut\_drad\_ut(ut)) &
1241                    + ut\_uz(uz\_ut(ua\_laplah\_ua(ut))/uz\_rad**2)
1242 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a555784ac52026af836b059e5455877e0_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_acfac93434de7671be57f901202543c18}\label{namespaceut__mpi__module_acfac93434de7671be57f901202543c18}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+laplapol2polgrid\+\_\+ut@{ut\+\_\+laplapol2polgrid\+\_\+ut}}
\index{ut\+\_\+laplapol2polgrid\+\_\+ut@{ut\+\_\+laplapol2polgrid\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+laplapol2polgrid\+\_\+ut()}{ut\_laplapol2polgrid\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+laplapol2polgrid\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References ut\+\_\+lapla\+\_\+ut(), and uz\+\_\+ut().


\begin{DoxyCode}
3108       \textcolor{comment}{!}
3109       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを▽^2Φから計算する.}
3110       \textcolor{comment}{! チェビシェフ格子点空間で境界条件を適用している.}
3111       \textcolor{comment}{!}
3112       \textcolor{comment}{! この関数を用いるためには ut\_Initial にて設定する}
3113       \textcolor{comment}{! チェビシェフ切断波数(lm)と鉛直格子点数(km)を等しく}
3114       \textcolor{comment}{! しておく必要がある.}
3115       \textcolor{comment}{!}
3116       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを f = ▽^2Φから定める式は}
3117       \textcolor{comment}{!}
3118       \textcolor{comment}{!    ▽^2Φ = f}
3119       \textcolor{comment}{!      Φ = const. at boundaries.}
3120       \textcolor{comment}{!      ∂Φ/∂r = 0 at boundaries          (粘着条件)}
3121       \textcolor{comment}{!      or ∂^2Φ/∂r^2 = 0 at boundaries   (応力なし条件)}
3122       \textcolor{comment}{!}
3123       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
3124       \textcolor{comment}{!}
3125       \textcolor{comment}{! 最終的にチェビシェフ係数の解が欲しい場合には, uz\_LaplaPol2Pol\_uz に}
3126       \textcolor{comment}{! 比べてチェビシェフ -- 格子点変換が 1 回分少なくて済む.}
3127       \textcolor{comment}{!}
3128       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(in)}  :: ut
3129               \textcolor{comment}{!(in) 入力▽^2φ分布}
3130 
3131       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_laplapol2polgrid\_ut
3132               \textcolor{comment}{!(out) 出力ポロイダルポテンシャル分布}
3133 
3134       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
3135               \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
3136               \textcolor{comment}{!     RR    : 両端粘着条件}
3137               \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
3138               \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
3139               \textcolor{comment}{!     FF    : 両端応力なし条件}
3140 
3141       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
3142               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
3143               \textcolor{comment}{!     default は false.}
3144 
3145       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
3146       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
3147 
3148       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}  :: uz\_work
3149       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}  :: ut\_work
3150       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:lm,0:lm)}           :: tt\_i
3151       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:lm,0:km)}           :: tz\_work
3152       \textcolor{keywordtype}{logical}                                 :: rigid1=.true.   \textcolor{comment}{! 境界条件}
3153       \textcolor{keywordtype}{logical}                                 :: rigid2=.true.   \textcolor{comment}{! 境界条件}
3154 
3155       \textcolor{keywordtype}{logical} :: first = .true.
3156       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
3157       \textcolor{keywordtype}{integer} :: l,n
3158       \textcolor{keywordtype}{save}    :: alu, kp, first
3159 
3160       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
3161          rigid1=.true. ; rigid2=.true.
3162       \textcolor{keywordflow}{else}
3163          \textcolor{keywordflow}{select case} (cond)
3164          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
3165             rigid1 = .true.  ; rigid2 = .true.
3166          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
3167             rigid1 = .true.  ; rigid2 = .false.
3168          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
3169             rigid1 = .false. ; rigid2 = .true.
3170          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
3171             rigid1 = .false. ; rigid2 = .false.
3172 \textcolor{keywordflow}{         case default}
3173             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_LaplaPol2PolGrid\_ut'},\textcolor{stringliteral}{'B.C. not supported'})
3174 \textcolor{keywordflow}{         end select}
3175 \textcolor{keywordflow}{      endif}
3176 
3177       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
3178          new\_matrix=.false.
3179       \textcolor{keywordflow}{else}
3180          new\_matrix=new
3181 \textcolor{keywordflow}{      endif}
3182 
3183       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
3184          first = .false.
3185 
3186          \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
3187             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_LaplaPol2PolGrid\_ut'}, &
3188              \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
3189 \textcolor{keywordflow}{         endif}
3190 
3191          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
3192          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
3193          \textcolor{keyword}{allocate}(alu(nmc,0:km,0:lm),kp(nmc,0:lm))
3194 
3195          \textcolor{keywordflow}{do} l=0,lm
3196             ut\_work = 0.0d0 ; ut\_work(:,l) = 1.0d0
3197 
3198             \textcolor{comment}{! 各水平波数に関して独立の式}
3199             alu(:,:,l) = uz\_ut(ut\_lapla\_ut(ut\_work))
3200 \textcolor{keywordflow}{         enddo}
3201 
3202          \textcolor{comment}{! 運動学的条件. 流線は境界で一定}
3203          tt\_i = 0.0d0
3204          \textcolor{keywordflow}{do} l=0,lm
3205             tt\_i(l,l)=1.0d0
3206 \textcolor{keywordflow}{         enddo}
3207 
3208          \textcolor{comment}{! 非電気伝導体}
3209          tz\_work = az\_at(tt\_i)
3210 
3211          \textcolor{keywordflow}{do} n=1,nmc
3212             alu(n,0,:)  = tz\_work(:,0)
3213             alu(n,km,:) = tz\_work(:,km)
3214 \textcolor{keywordflow}{         enddo}
3215 
3216          \textcolor{comment}{! 力学的条件粘着条件}
3217          \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
3218             tz\_work=az\_at(at\_dr\_at(tt\_i))
3219          \textcolor{keywordflow}{else}
3220             tz\_work=az\_at(at\_dr\_at(at\_dr\_at(tt\_i)))
3221 \textcolor{keywordflow}{         endif}
3222          \textcolor{keywordflow}{do} n=1,nmc
3223             alu(n,1,:) = tz\_work(:,0)
3224 \textcolor{keywordflow}{         enddo}
3225 
3226          \textcolor{comment}{! 力学的条件粘着条件}
3227          \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
3228             tz\_work=az\_at(at\_dr\_at(tt\_i))
3229          \textcolor{keywordflow}{else}
3230             tz\_work=az\_at(at\_dr\_at(at\_dr\_at(tt\_i)))
3231 \textcolor{keywordflow}{         endif}
3232          \textcolor{keywordflow}{do} n=1,nmc
3233             alu(n,km-1,:) = tz\_work(:,km)
3234 \textcolor{keywordflow}{         enddo}
3235 
3236          \textcolor{keyword}{call }ludecomp(alu,kp)
3237 
3238          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_LaplaPol2PolGrid\_ut'},&
3239                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
3240 \textcolor{keywordflow}{      endif}
3241 
3242       uz\_work         = uz\_ut(ut)
3243       uz\_work(:,1)    = 0.0d0               \textcolor{comment}{! 力学的条件}
3244       uz\_work(:,km-1) = 0.0d0               \textcolor{comment}{! 力学的条件}
3245       uz\_work(:,0)    = 0.0d0               \textcolor{comment}{! 運動学的条件}
3246       uz\_work(:,km)   = 0.0d0               \textcolor{comment}{! 運動学的条件}
3247 
3248       ut\_laplapol2polgrid\_ut = lusolve(alu,kp,uz\_work)
3249 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_acfac93434de7671be57f901202543c18_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_adbae848ef0b494d5a32cce10cb6ad98f}\label{namespaceut__mpi__module_adbae848ef0b494d5a32cce10cb6ad98f}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+laplapol2poltau\+\_\+ut@{ut\+\_\+laplapol2poltau\+\_\+ut}}
\index{ut\+\_\+laplapol2poltau\+\_\+ut@{ut\+\_\+laplapol2poltau\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+laplapol2poltau\+\_\+ut()}{ut\_laplapol2poltau\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+laplapol2poltau\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References ut\+\_\+drad\+\_\+ut(), ut\+\_\+lapla\+\_\+ut(), and uz\+\_\+ut().


\begin{DoxyCode}
2984       \textcolor{comment}{!}
2985       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを▽^2Φから計算する.}
2986       \textcolor{comment}{! チェビシェフタウ法で境界条件を適用している.}
2987       \textcolor{comment}{!}
2988       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを f = ▽^2Φから定める式は}
2989       \textcolor{comment}{!}
2990       \textcolor{comment}{!    ▽^2Φ = f}
2991       \textcolor{comment}{!      Φ = const. at boundaries.}
2992       \textcolor{comment}{!      ∂Φ/∂r = 0 at boundaries          (粘着条件)}
2993       \textcolor{comment}{!      or ∂^2Φ/∂r^2 = 0 at boundaries   (応力なし条件)}
2994       \textcolor{comment}{!}
2995       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
2996       \textcolor{comment}{!}
2997       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(in)}  :: ut
2998               \textcolor{comment}{!(in) 入力▽^2φ分布}
2999 
3000       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_laplapol2poltau\_ut
3001               \textcolor{comment}{!(out) 出力ポロイダルポテンシャル分布}
3002 
3003       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
3004               \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
3005               \textcolor{comment}{!     RR    : 両端粘着条件}
3006               \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
3007               \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
3008               \textcolor{comment}{!     FF    : 両端応力なし条件}
3009 
3010       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
3011               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
3012               \textcolor{comment}{!     default は false.}
3013 
3014       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
3015       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
3016 
3017       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}  :: uz\_work
3018       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}  :: ut\_work
3019       \textcolor{keywordtype}{logical}                       :: rigid1=.true.   \textcolor{comment}{! 境界条件}
3020       \textcolor{keywordtype}{logical}                       :: rigid2=.true.   \textcolor{comment}{! 境界条件}
3021 
3022       \textcolor{keywordtype}{logical} :: first = .true.
3023       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
3024       \textcolor{keywordtype}{integer} :: l
3025       \textcolor{keywordtype}{save}    :: alu, kp, first
3026 
3027       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
3028          rigid1=.true. ; rigid2=.true.
3029       \textcolor{keywordflow}{else}
3030          \textcolor{keywordflow}{select case} (cond)
3031          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
3032             rigid1 = .true.  ; rigid2 = .true.
3033          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
3034             rigid1 = .true.  ; rigid2 = .false.
3035          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
3036             rigid1 = .false. ; rigid2 = .true.
3037          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
3038             rigid1 = .false. ; rigid2 = .false.
3039 \textcolor{keywordflow}{         case default}
3040             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_LaplaPol2PolTau\_ut'},\textcolor{stringliteral}{'B.C. not supported'})
3041 \textcolor{keywordflow}{         end select}
3042 \textcolor{keywordflow}{      endif}
3043 
3044       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
3045          new\_matrix=.false.
3046       \textcolor{keywordflow}{else}
3047          new\_matrix=new
3048 \textcolor{keywordflow}{      endif}
3049 
3050       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
3051          first = .false.
3052 
3053          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
3054          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
3055          \textcolor{keyword}{allocate}(alu(nmc,0:lm,0:lm),kp(nmc,0:lm))
3056 
3057          alu = 0.0d0
3058          \textcolor{keywordflow}{do} l=0,lm-2
3059             ut\_work = 0.0d0 ; ut\_work(:,l) = 1.0d0
3060 
3061             \textcolor{comment}{! 各水平波数に関して独立の式}
3062             alu(:,:,l) = ut\_lapla\_ut(ut\_work)
3063 \textcolor{keywordflow}{         enddo}
3064 
3065          \textcolor{comment}{! 運動学的条件. 流線は境界で一定}
3066          \textcolor{keywordflow}{do} l=0,lm
3067             ut\_work=0.0d0
3068             ut\_work(:,l) = 1.0d0
3069             uz\_work = uz\_ut(ut\_work)
3070 
3071             alu(:,lm-1,l)  = uz\_work(:,0)
3072             alu(:,lm,l)    = uz\_work(:,km)
3073 
3074             \textcolor{comment}{! 力学的条件粘着条件}
3075             \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
3076                uz\_work=uz\_ut(ut\_drad\_ut(ut\_work))
3077             \textcolor{keywordflow}{else}
3078                uz\_work=uz\_ut(ut\_drad\_ut(ut\_drad\_ut(ut\_work)))
3079 \textcolor{keywordflow}{            endif}
3080             alu(:,lm-2,l) = uz\_work(:,0)
3081 
3082             \textcolor{comment}{! 力学的条件粘着条件}
3083             \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
3084                uz\_work=uz\_ut(ut\_drad\_ut(ut\_work))
3085             \textcolor{keywordflow}{else}
3086                uz\_work=uz\_ut(ut\_drad\_ut(ut\_drad\_ut(ut\_work)))
3087 \textcolor{keywordflow}{            endif}
3088             alu(:,lm-3,l) = uz\_work(:,km)
3089 \textcolor{keywordflow}{         end do}
3090 
3091          \textcolor{keyword}{call }ludecomp(alu,kp)
3092 
3093          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_LaplaPol2PolTau\_ut'},&
3094                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
3095 \textcolor{keywordflow}{      endif}
3096 
3097       ut\_work         = ut
3098       ut\_work(:,lm)   = 0.0d0               \textcolor{comment}{! 運動学的条件}
3099       ut\_work(:,lm-1) = 0.0d0               \textcolor{comment}{! 運動学的条件}
3100       ut\_work(:,lm-2) = 0.0d0               \textcolor{comment}{! 力学的条件}
3101       ut\_work(:,lm-3) = 0.0d0               \textcolor{comment}{! 力学的条件}
3102 
3103       ut\_laplapol2poltau\_ut = lusolve(alu,kp,ut\_work)
3104 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_adbae848ef0b494d5a32cce10cb6ad98f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a850ff82982733303587cf87072eaf1bb}\label{namespaceut__mpi__module_a850ff82982733303587cf87072eaf1bb}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+mpi\+\_\+finalize@{ut\+\_\+mpi\+\_\+finalize}}
\index{ut\+\_\+mpi\+\_\+finalize@{ut\+\_\+mpi\+\_\+finalize}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+mpi\+\_\+finalize()}{ut\_mpi\_finalize()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+mpi\+\_\+finalize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



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



References at\+\_\+module\+::at\+\_\+finalize(), h\+\_\+rad, h\+\_\+rad\+\_\+weight, ua\+\_\+mpi\+\_\+module\+::ua\+\_\+mpi\+\_\+finalize(), uz\+\_\+rad, wh\+\_\+rad, xvh\+\_\+lat, xvh\+\_\+lon, and xvh\+\_\+rad.


\begin{DoxyCode}
3605       \textcolor{comment}{!}
3606       \textcolor{comment}{! モジュールの終了処理(割り付け配列の解放)をおこなう.}
3607       \textcolor{comment}{!}
3608       \textcolor{comment}{! このサブルーチンを単独で用いるのでなく,}
3609       \textcolor{comment}{! 上位サブルーチン wa\_mpi\_Finalize を使用すること.}
3610       \textcolor{comment}{!}
3611       \textcolor{keyword}{deallocate}(h\_rad)
3612       \textcolor{keyword}{deallocate}(h\_rad\_weight)
3613 
3614       \textcolor{keyword}{deallocate}(xvh\_lon)
3615       \textcolor{keyword}{deallocate}(xvh\_lat)
3616       \textcolor{keyword}{deallocate}(xvh\_rad)
3617 
3618       \textcolor{keyword}{deallocate}(wh\_rad)
3619       \textcolor{keyword}{deallocate}(uz\_rad)
3620 
3621       \textcolor{keyword}{call }ua\_mpi\_finalize
3622       \textcolor{keyword}{call }at\_finalize
3623 
3624       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_mpi\_finalize'},&
3625            \textcolor{stringliteral}{'ut\_mpi\_module (2021/11/15) is finalized'})
3626 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a850ff82982733303587cf87072eaf1bb_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a32191b0ca7f0560c7a537f00874f44c0}\label{namespaceut__mpi__module_a32191b0ca7f0560c7a537f00874f44c0}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+mpi\+\_\+initial@{ut\+\_\+mpi\+\_\+initial}}
\index{ut\+\_\+mpi\+\_\+initial@{ut\+\_\+mpi\+\_\+initial}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+mpi\+\_\+initial()}{ut\_mpi\_initial()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+mpi\+\_\+initial (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{i,  }\item[{integer, intent(in)}]{j,  }\item[{integer, intent(in)}]{k,  }\item[{integer, intent(in)}]{n,  }\item[{integer, intent(in)}]{l,  }\item[{real(dp), intent(in)}]{r\+\_\+in,  }\item[{real(dp), intent(in)}]{r\+\_\+out,  }\item[{integer, intent(in), optional}]{np,  }\item[{integer, intent(in), optional}]{npv }\end{DoxyParamCaption})}



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



References at\+\_\+module\+::at\+\_\+initial(), h\+\_\+rad, h\+\_\+rad\+\_\+weight, ua\+\_\+mpi\+\_\+module\+::ua\+\_\+mpi\+\_\+initial(), uz\+\_\+rad, wh\+\_\+rad, xvh\+\_\+lat, xvh\+\_\+lon, and xvh\+\_\+rad.


\begin{DoxyCode}
481      \textcolor{comment}{!}
482      \textcolor{comment}{! スペクトル変換の格子点数, 波数, 動径座標の範囲を設定する.}
483      \textcolor{comment}{!}
484      \textcolor{comment}{! 他の関数を呼ぶ前に, 最初にこのサブルーチンを呼んで初期設定を}
485      \textcolor{comment}{! しなければならない.}
486      \textcolor{comment}{!}
487      \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: i              \textcolor{comment}{! 格子点数(経度λ)}
488      \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: j              \textcolor{comment}{! 格子点数(緯度φ)}
489      \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: k              \textcolor{comment}{! 格子点数(動径 r)}
490      \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: n              \textcolor{comment}{! 切断波数(水平全波数)}
491      \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: l              \textcolor{comment}{! 切断波数(動径波数)}
492 
493      \textcolor{keywordtype}{real(DP)},\textcolor{keywordtype}{intent(in)} :: r\_in           \textcolor{comment}{! 球殻内半径}
494      \textcolor{keywordtype}{real(DP)},\textcolor{keywordtype}{intent(in)} :: r\_out          \textcolor{comment}{! 球殻外半径}
495 
496      \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: np   \textcolor{comment}{! OPENMP での最大スレッド数(dummy)}
497      \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: npv  \textcolor{comment}{! 鉛直並列プロセス数}
498 
499      \textcolor{keywordtype}{logical} :: wa\_initialize=.true.   \textcolor{comment}{! wa\_initial スイッチ}
500      \textcolor{keywordtype}{integer} :: npv\_in                 \textcolor{comment}{! 鉛直並列プロセス数}
501 
502      im = i  ; jm = j ; km = k
503      nm = n  ; lm = l
504      ri = r\_in ; ro = r\_out
505 
506      \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(npv)) \textcolor{keywordflow}{then}
507         npv\_in = npv
508      \textcolor{keywordflow}{else}
509         npv\_in = 1
510 \textcolor{keywordflow}{     endif}
511 
512      \textcolor{keywordflow}{if} ( wa\_initialize ) \textcolor{keywordflow}{then}
513         \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(np) ) \textcolor{keywordflow}{then}
514            \textcolor{keyword}{call }ua\_mpi\_initial(nm,im,jm,km+1,np=np,npv=npv\_in)
515         \textcolor{keywordflow}{else}
516            \textcolor{keyword}{call }ua\_mpi\_initial(nm,im,jm,km+1,npv=npv\_in)
517 \textcolor{keywordflow}{        endif}
518 \textcolor{keywordflow}{     endif}
519      nc = ncc
520 
521      \textcolor{keyword}{call }at\_initial(km,lm,r\_in,r\_out)
522 
523      \textcolor{keyword}{allocate}(h\_rad(kc))
524      \textcolor{keyword}{allocate}(h\_rad\_weight(kc))
525 
526      \textcolor{keyword}{allocate}(xvh\_lon(0:im-1,jc,kc))
527      \textcolor{keyword}{allocate}(xvh\_lat(0:im-1,jc,kc))
528      \textcolor{keyword}{allocate}(xvh\_rad(0:im-1,jc,kc))
529 
530      \textcolor{keyword}{allocate}(wh\_rad(nc,kc))
531      \textcolor{keyword}{allocate}(uz\_rad(nmc,0:km))
532 
533      z\_rad\_weight = z\_rad\_weight * z\_rad**2     \textcolor{comment}{! r^2 dr の積分重み}
534      h\_rad = z\_rad(ks-1:ke-1)
535      h\_rad\_weight = z\_rad\_weight(ks-1:ke-1)
536 
537      xvh\_lon = spread(xv\_lon,3,kc)
538      xvh\_lat = spread(xv\_lat,3,kc)
539      xvh\_rad = spread(spread(h\_rad,1,jc),1,im)
540 
541      wh\_rad = spread(h\_rad,1,nc)
542      uz\_rad = spread(z\_rad,1,nmc)
543 
544      \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_mpi\_initial'}, &
545           \textcolor{stringliteral}{'ut\_mpi\_module (2021/11/15) is initialized'})
546 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a32191b0ca7f0560c7a537f00874f44c0_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ae86900d2296f8af82b92d277eccd467e}\label{namespaceut__mpi__module_ae86900d2296f8af82b92d277eccd467e}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+polmagboundariesgrid@{ut\+\_\+polmagboundariesgrid}}
\index{ut\+\_\+polmagboundariesgrid@{ut\+\_\+polmagboundariesgrid}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+polmagboundariesgrid()}{ut\_polmagboundariesgrid()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+polmagboundariesgrid (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut\+\_\+\+P\+OL,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References ut\+\_\+drad\+\_\+ut(), and uz\+\_\+ut().


\begin{DoxyCode}
3505       \textcolor{comment}{!}
3506       \textcolor{comment}{! 磁場ポロイダルポテンシャルに対して境界条件を適用する.}
3507       \textcolor{comment}{! 鉛直実空間での境界条件適用.}
3508       \textcolor{comment}{!}
3509       \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
3510       \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには}
3511       \textcolor{comment}{! ut\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
3512       \textcolor{comment}{! 等しくしておく必要がある.}
3513       \textcolor{comment}{!}
3514       \textcolor{comment}{! 現在のところ境界物質が非電気伝導体の場合のみ対応している.}
3515       \textcolor{comment}{! その場合, 磁場ポロイダルポテンシャルの各水平スペクトル成分 h に}
3516       \textcolor{comment}{! たいして境界条件が与えられ,}
3517       \textcolor{comment}{!}
3518       \textcolor{comment}{!  * 外側境界 : dh/dr + (n+1)h/r = 0}
3519       \textcolor{comment}{!  * 内側境界 : dh/dr - nh/r = 0}
3520       \textcolor{comment}{!}
3521       \textcolor{comment}{! である. ここで n は h の水平全波数である.}
3522       \textcolor{comment}{!}
3523       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
3524       \textcolor{comment}{!}
3525       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}   :: ut\_pol
3526               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
3527 
3528       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
3529               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
3530               \textcolor{comment}{!     default は false.}
3531 
3532       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
3533       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
3534 
3535       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: ut\_i
3536       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_psi
3537       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_dpsidr
3538       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}      :: u\_n
3539 
3540       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}  :: uz\_pol
3541 
3542       \textcolor{keywordtype}{logical} :: first = .true.
3543       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
3544       \textcolor{keywordtype}{integer}  :: l, n, nn(2)
3545       \textcolor{keywordtype}{save}     :: alu, kp, first
3546 
3547       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
3548          new\_matrix=.false.
3549       \textcolor{keywordflow}{else}
3550          new\_matrix=new
3551 \textcolor{keywordflow}{      endif}
3552 
3553       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
3554          first = .false.
3555 
3556          \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
3557             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'PolMagBoundariesGrid'}, &
3558              \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
3559 \textcolor{keywordflow}{         endif}
3560 
3561          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) )  \textcolor{keyword}{deallocate}(alu)
3562          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) )   \textcolor{keyword}{deallocate}(kp)
3563          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(ut\_i) ) \textcolor{keyword}{deallocate}(ut\_i)
3564          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_psi) ) \textcolor{keyword}{deallocate}(uz\_psi)
3565          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_dpsidr) ) \textcolor{keyword}{deallocate}(uz\_dpsidr)
3566          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(u\_n) ) \textcolor{keyword}{deallocate}(u\_n)
3567 
3568          \textcolor{keyword}{allocate}(alu(nmc,0:lm,0:lm),kp(nmc,0:lm))
3569          \textcolor{keyword}{allocate}(ut\_i(nmc,0:lm),u\_n(nmc))
3570          \textcolor{keyword}{allocate}(uz\_psi(nmc,0:km),uz\_dpsidr(nmc,0:km))
3571 
3572          \textcolor{keywordflow}{do} n=1,nmc
3573             nn=nm\_l(n)
3574             u\_n(n) = nn(1)
3575 \textcolor{keywordflow}{         enddo}
3576 
3577          \textcolor{keywordflow}{do} l=0,lm
3578             ut\_i = 0.0d0 ; ut\_i(:,l) = 1.0d0
3579             uz\_psi = uz\_ut(ut\_i)
3580             alu(:,:,l) = uz\_psi
3581 
3582             uz\_dpsidr = uz\_ut(ut\_drad\_ut(ut\_i))
3583             alu(:,0,l)  = uz\_dpsidr(:,0) + (u\_n+1) * uz\_psi(:,0)/z\_rad(0)
3584             alu(:,km,l) = uz\_dpsidr(:,km) - u\_n * uz\_psi(:,km)/z\_rad(km)
3585 \textcolor{keywordflow}{         enddo}
3586 
3587          \textcolor{keyword}{call }ludecomp(alu,kp)
3588 
3589          \textcolor{keyword}{deallocate}(ut\_i,uz\_psi,uz\_dpsidr,u\_n)
3590 
3591          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'PolmagBoundariesGrid'},&
3592                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
3593 \textcolor{keywordflow}{      endif}
3594 
3595       uz\_pol       = uz\_ut(ut\_pol)
3596       uz\_pol(:,0)  = 0.0d0
3597       uz\_pol(:,km) = 0.0d0
3598       ut\_pol = lusolve(alu,kp,uz\_pol)
3599 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ae86900d2296f8af82b92d277eccd467e_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_acd00abc66819e03587fd78d1b5f69c52}\label{namespaceut__mpi__module_acd00abc66819e03587fd78d1b5f69c52}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+polmagboundariestau@{ut\+\_\+polmagboundariestau}}
\index{ut\+\_\+polmagboundariestau@{ut\+\_\+polmagboundariestau}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+polmagboundariestau()}{ut\_polmagboundariestau()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+polmagboundariestau (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut\+\_\+\+P\+OL,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References ut\+\_\+drad\+\_\+ut(), and uz\+\_\+ut().


\begin{DoxyCode}
3419       \textcolor{comment}{!}
3420       \textcolor{comment}{! 磁場ポロイダルポテンシャルに対して境界条件を適用する.}
3421       \textcolor{comment}{! Chebyshev 空間での境界条件適用}
3422       \textcolor{comment}{!}
3423       \textcolor{comment}{! チェビシェフ空間において境界条件を満たすべく高次の係数を定める方法を}
3424       \textcolor{comment}{! とっている(タウ法). 現在のところ境界物質が非電気伝導体の場合のみ}
3425       \textcolor{comment}{! 対応している. その場合, 磁場ポロイダルポテンシャルの各水平スペクトル}
3426       \textcolor{comment}{! 成分 h にたいして境界条件が与えられ,}
3427       \textcolor{comment}{!}
3428       \textcolor{comment}{!  * 外側境界 : dh/dr + (n+1)h/r = 0}
3429       \textcolor{comment}{!  * 内側境界 : dh/dr - nh/r = 0}
3430       \textcolor{comment}{!}
3431       \textcolor{comment}{! である. ここで n は h の水平全波数である.}
3432       \textcolor{comment}{!}
3433       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
3434       \textcolor{comment}{!}
3435       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}   :: ut\_pol
3436               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
3437 
3438       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
3439               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
3440               \textcolor{comment}{!     default は false.}
3441 
3442       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
3443       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
3444 
3445       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: ut\_i
3446       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_psi
3447       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_dpsidr
3448       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}      :: u\_n
3449 
3450       \textcolor{keywordtype}{logical} :: first = .true.
3451       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
3452       \textcolor{keywordtype}{integer}  :: l, n, nn(2)
3453       \textcolor{keywordtype}{save}     :: alu, kp, first
3454 
3455       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
3456          new\_matrix=.false.
3457       \textcolor{keywordflow}{else}
3458          new\_matrix=new
3459 \textcolor{keywordflow}{      endif}
3460 
3461       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
3462          first = .false.
3463 
3464          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
3465          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
3466          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(ut\_i) ) \textcolor{keyword}{deallocate}(ut\_i)
3467          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_psi) ) \textcolor{keyword}{deallocate}(uz\_psi)
3468          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_dpsidr) ) \textcolor{keyword}{deallocate}(uz\_dpsidr)
3469          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(u\_n) ) \textcolor{keyword}{deallocate}(u\_n)
3470 
3471          \textcolor{keyword}{allocate}(alu(nmc,0:lm,0:lm),kp(nmc,0:lm))
3472          \textcolor{keyword}{allocate}(ut\_i(nmc,0:lm),u\_n(nmc))
3473          \textcolor{keyword}{allocate}(uz\_psi(nmc,0:km),uz\_dpsidr(nmc,0:km))
3474 
3475          \textcolor{keywordflow}{do} n=1,nmc
3476             nn=nm\_l(n)
3477             u\_n(n) = nn(1)
3478 \textcolor{keywordflow}{         enddo}
3479 
3480          \textcolor{keywordflow}{do} l=0,lm
3481             ut\_i = 0.0d0 ; ut\_i(:,l) = 1.0d0
3482             alu(:,:,l) = ut\_i
3483 
3484             uz\_psi = uz\_ut(ut\_i)
3485             uz\_dpsidr = uz\_ut(ut\_drad\_ut(ut\_i))
3486             alu(:,lm-1,l) = uz\_dpsidr(:,0) + (u\_n+1) * uz\_psi(:,0)/z\_rad(0)
3487             alu(:,lm,l)   = uz\_dpsidr(:,km) - u\_n * uz\_psi(:,km)/z\_rad(km)
3488 \textcolor{keywordflow}{         enddo}
3489 
3490          \textcolor{keyword}{call }ludecomp(alu,kp)
3491 
3492          \textcolor{keyword}{deallocate}(ut\_i,uz\_psi,uz\_dpsidr,u\_n)
3493 
3494          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'PolmagBoundariesTau'},&
3495                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
3496 \textcolor{keywordflow}{      endif}
3497 
3498       ut\_pol(:,lm-1) = 0.0d0
3499       ut\_pol(:,lm)   = 0.0d0
3500       ut\_pol = lusolve(alu,kp,ut\_pol)
3501 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_acd00abc66819e03587fd78d1b5f69c52_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_afc3851a9c9fa51c1bb718e6464d8cf3b}\label{namespaceut__mpi__module_afc3851a9c9fa51c1bb718e6464d8cf3b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+potential2rotationmpi@{ut\+\_\+potential2rotationmpi}}
\index{ut\+\_\+potential2rotationmpi@{ut\+\_\+potential2rotationmpi}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+potential2rotationmpi()}{ut\_potential2rotationmpi()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+potential2rotationmpi (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(out)}]{xvh\+\_\+\+Rot\+V\+L\+ON,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(out)}]{xvh\+\_\+\+Rot\+V\+L\+AT,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(out)}]{xvh\+\_\+\+Rot\+V\+R\+AD,  }\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+P\+O\+L\+P\+OT }\end{DoxyParamCaption})}



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



References ut\+\_\+lapla\+\_\+ut(), and ut\+\_\+potential2vectormpi().


\begin{DoxyCode}
1492       \textcolor{comment}{!}
1493       \textcolor{comment}{! トロイダルポロイダルポテンシャルΨ,Φで表される非発散ベクトル場}
1494       \textcolor{comment}{!}
1495       \textcolor{comment}{!     v = ▽x(Ψr) + ▽x▽x(Φr)}
1496       \textcolor{comment}{!}
1497       \textcolor{comment}{! に対して, その回転}
1498       \textcolor{comment}{!}
1499       \textcolor{comment}{!     ▽xv = ▽x▽x(Ψr) + ▽x▽x▽x(Φr) = ▽x▽x(Ψr) - ▽x((▽^2Φ)r)}
1500       \textcolor{comment}{!}
1501       \textcolor{comment}{! を計算する.}
1502 
1503       \textcolor{comment}{! ベクトル場の回転}
1504       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(OUT)} :: xvh\_rotvlon
1505       \textcolor{comment}{!(out) 回転の経度成分}
1506 
1507       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(OUT)} :: xvh\_rotvlat
1508       \textcolor{comment}{!(out) 回転の緯度成分}
1509 
1510       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(OUT)} :: xvh\_rotvrad
1511       \textcolor{comment}{!(out) 回転の動径成分}
1512 
1513       \textcolor{comment}{! 入力ベクトル場を表すポテンシャル}
1514       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_torpot
1515       \textcolor{comment}{!(in) トロイダルポテンシャル}
1516 
1517       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_polpot
1518       \textcolor{comment}{!(in) ポロイダルポテンシャル}
1519 
1520       \textcolor{keyword}{call }ut\_potential2vectormpi( &
1521            xvh\_rotvlon,xvh\_rotvlat,xvh\_rotvrad, &
1522            -ut\_lapla\_ut(ut\_polpot), ut\_torpot)
1523 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_afc3851a9c9fa51c1bb718e6464d8cf3b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ab033647ba6c157c68f27f66db1ad9827}\label{namespaceut__mpi__module_ab033647ba6c157c68f27f66db1ad9827}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+potential2vectormpi@{ut\+\_\+potential2vectormpi}}
\index{ut\+\_\+potential2vectormpi@{ut\+\_\+potential2vectormpi}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+potential2vectormpi()}{ut\_potential2vectormpi()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+potential2vectormpi (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc)}]{xvh\+\_\+\+V\+L\+ON,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc)}]{xvh\+\_\+\+V\+L\+AT,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc)}]{xvh\+\_\+\+V\+R\+AD,  }\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+P\+O\+L\+P\+OT }\end{DoxyParamCaption})}



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



References ut\+\_\+l2\+\_\+ut(), ut\+\_\+rotrad\+\_\+ut(), uz\+\_\+ut(), xvh\+\_\+rad, and xvh\+\_\+ut().


\begin{DoxyCode}
1441       \textcolor{comment}{!}
1442       \textcolor{comment}{! トロイダルポロイダルポテンシャルΨ,Φで表される非発散ベクトル場}
1443       \textcolor{comment}{!}
1444       \textcolor{comment}{!     v = ▽x(Ψr) + ▽x▽x(Φr)}
1445       \textcolor{comment}{!}
1446       \textcolor{comment}{! の各成分を計算する}
1447       \textcolor{comment}{!}
1448       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}     :: xvh\_vlon
1449       \textcolor{comment}{!(out) ベクトル場の経度成分}
1450 
1451       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}     :: xvh\_vlat
1452       \textcolor{comment}{!(out) ベクトル場の緯度成分}
1453 
1454       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}     :: xvh\_vrad
1455       \textcolor{comment}{!(out) ベクトル場の動径成分}
1456 
1457       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_torpot
1458       \textcolor{comment}{!(in) トロイダルポテンシャル}
1459 
1460       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_polpot
1461       \textcolor{comment}{!(in) ポロイダルポテンシャル}
1462 
1463 
1464       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)} :: uz\_tor
1465       \textcolor{comment}{!(in) トロイダルポテンシャル}
1466 
1467       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)} :: uz\_dpoldrad
1468       \textcolor{comment}{!(in) ポロイダルポテンシャル}
1469 
1470       uz\_tor = uz\_ut(ut\_torpot)
1471       uz\_dpoldrad = uz\_ut(ut\_rotrad\_ut(ut\_polpot))
1472 
1473       \textcolor{keyword}{call }ua\_streampotential2vectormpi(-uz\_tor, uz\_dpoldrad, xvh\_vlon, xvh\_vlat)
1474       xvh\_vrad = xvh\_ut(ut\_l2\_ut(ut\_polpot))/xvh\_rad
1475 
1476 
1477 \textcolor{comment}{!!$      xvh\_VLON =   xvh\_RAD * xvh\_GradLat\_ut(ut\_TORPOT) &}
1478 \textcolor{comment}{!!$                 + xvb\_GradLon\_ua(uz\_ut(ut\_RotRad\_ut(ut\_POLPOT)))}
1479 \textcolor{comment}{!!$      xvh\_VLAT = - xvh\_RAD * xvh\_GradLon\_ut(ut\_TORPOT) &}
1480 \textcolor{comment}{!!$                 + xvb\_GradLat\_ua(uz\_ut(ut\_RotRad\_ut(ut\_POLPOT)))}
1481 \textcolor{comment}{!!$      xvh\_VRAD = xvh\_ut(ut\_L2\_ut(ut\_POLPOT))/xvh\_RAD}
1482 \textcolor{comment}{!!$      xvh\_VLON =   xvh\_RAD * xvh\_GradLat\_ut(ut\_TORPOT) &}
1483 \textcolor{comment}{!!$                 + xvb\_GradLon\_wb(wh\_wz(wz\_uz(uz\_ut(ut\_RotRad\_ut(ut\_POLPOT)))))}
1484 \textcolor{comment}{!!$      xvh\_VLAT = - xvh\_RAD * xvh\_GradLon\_ut(ut\_TORPOT) &}
1485 \textcolor{comment}{!!$                 + xvb\_GradLat\_wb(wh\_wz(wz\_uz(uz\_ut(ut\_RotRad\_ut(ut\_POLPOT)))))}
1486 \textcolor{comment}{!!$      xvh\_VRAD = xvh\_ut(ut\_L2\_ut(ut\_POLPOT))/xvh\_RAD}
1487 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ab033647ba6c157c68f27f66db1ad9827_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ae537f74638b300a290422e4d65ed3086}\label{namespaceut__mpi__module_ae537f74638b300a290422e4d65ed3086}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+radrot\+\_\+radrotrot@{ut\+\_\+radrot\+\_\+radrotrot}}
\index{ut\+\_\+radrot\+\_\+radrotrot@{ut\+\_\+radrot\+\_\+radrotrot}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+radrot\+\_\+radrotrot()}{ut\_radrot\_radrotrot()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+radrot\+\_\+radrotrot (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+L\+ON,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+L\+AT,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+R\+AD,  }\item[{real(dp), dimension(nmc,0\+:lm)}]{ut\+\_\+\+Tor,  }\item[{real(dp), dimension(nmc,0\+:lm)}]{ut\+\_\+\+Lapla\+Pol }\end{DoxyParamCaption})}



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



References ut\+\_\+l2\+\_\+ut(), ut\+\_\+rotrad\+\_\+ut(), ut\+\_\+vector2vordivmpi(), ut\+\_\+xvh(), and xvh\+\_\+rad.


\begin{DoxyCode}
1400       
1401       \textcolor{comment}{!}
1402       \textcolor{comment}{! ベクトル v に対して r・(▽×v) と r・(▽×▽×v) を計算する.}
1403       \textcolor{comment}{!}
1404       \textcolor{comment}{! 第 1, 2, 3 引数(v[λ], v[φ], v[r])がそれぞれベクトルの経度成分,}
1405       \textcolor{comment}{! 緯度成分, 動径成分を表す.}
1406       \textcolor{comment}{!}
1407       \textcolor{comment}{!    r・(▽×v) = 1/cosφ・∂v[φ]/∂λ - 1/cosφ・∂(v[λ] cosφ)/∂φ}
1408       \textcolor{comment}{!}
1409       \textcolor{comment}{!    r・(▽×▽×v)  = 1/r ∂/∂r (r・( 1/cosφ・∂v[λ]/∂λ}
1410       \textcolor{comment}{!                                  + 1/cosφ・∂(v[φ] cosφ)/∂φ ) )}
1411       \textcolor{comment}{!                     + L^2 v[r]/r}
1412       \textcolor{comment}{!}
1413       \textcolor{comment}{! のスペクトルデータが返される.}
1414       \textcolor{comment}{!}
1415       \textcolor{comment}{! スペクトル変換を用いず微分を計算するために, 変換回数が 2 回少なくてすむ.}
1416       \textcolor{comment}{!}
1417       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlon
1418       \textcolor{comment}{!(in) ベクトルの経度成分}
1419 
1420       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlat
1421       \textcolor{comment}{!(in) ベクトルの緯度成分}
1422 
1423       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vrad
1424       \textcolor{comment}{!(in) ベクトルの動径成分}
1425 
1426       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}     :: ut\_tor
1427       \textcolor{comment}{!(out) ベクトル v の r・(▽×v)}
1428       
1429       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}     :: ut\_laplapol
1430       \textcolor{comment}{!(out) ベクトル v の r・(▽×▽×v)}
1431 
1432       \textcolor{keyword}{call }ut\_vector2vordivmpi(xvh\_vlon, xvh\_vlat, ut\_tor, ut\_laplapol)
1433 
1434       ut\_laplapol = ut\_rotrad\_ut(ut\_laplapol) &
1435                   + ut\_l2\_ut(ut\_xvh(xvh\_vrad/xvh\_rad))
1436 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ae537f74638b300a290422e4d65ed3086_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_abd1b8c452b90f06c672c117b159b7826}\label{namespaceut__mpi__module_abd1b8c452b90f06c672c117b159b7826}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+radrot\+\_\+xvh\+\_\+xvh@{ut\+\_\+radrot\+\_\+xvh\+\_\+xvh}}
\index{ut\+\_\+radrot\+\_\+xvh\+\_\+xvh@{ut\+\_\+radrot\+\_\+xvh\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+radrot\+\_\+xvh\+\_\+xvh()}{ut\_radrot\_xvh\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+radrot\+\_\+xvh\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+L\+ON,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+L\+AT }\end{DoxyParamCaption})}



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



References ut\+\_\+uz().


\begin{DoxyCode}
1340       \textcolor{comment}{!}
1341       \textcolor{comment}{! ベクトルの渦度と動径ベクトルの内積 r・(▽×v) を計算する.}
1342       \textcolor{comment}{!}
1343       \textcolor{comment}{! 第 1, 2 引数(v[λ], v[φ])がそれぞれベクトルの経度成分, 緯度成分を表す.}
1344       \textcolor{comment}{!}
1345       \textcolor{comment}{!    r・(▽×v) = 1/cosφ・∂v[φ]/∂λ - 1/cosφ・∂(v[λ] cosφ)/∂φ}
1346       \textcolor{comment}{!}
1347       \textcolor{comment}{! のスペクトル データが返される.}
1348       \textcolor{comment}{!}
1349       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlon
1350       \textcolor{comment}{!(in) ベクトルの経度成分}
1351 
1352       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlat
1353       \textcolor{comment}{!(in) ベクトルの緯度成分}
1354 
1355       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}     :: ut\_radrot\_xvh\_xvh
1356       \textcolor{comment}{!(out) ベクトルの渦度と動径ベクトルの内積}
1357 
1358       ut\_radrot\_xvh\_xvh = ut\_uz(   ua\_divlon\_xvb(xvh\_vlat) &
1359                                  - ua\_divlat\_xvb(xvh\_vlon) )
1360 \textcolor{comment}{!!$      ut\_RadRot\_xvh\_xvh = ut\_uz(uz\_wz(wz\_wh(wb\_DivLon\_xvb(xvh\_VLAT) &}
1361 \textcolor{comment}{!!$                                - wb\_DivLat\_xvb(xvh\_VLON))))}
1362 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_abd1b8c452b90f06c672c117b159b7826_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a3c928effe2fca32b2b549dce469e240b}\label{namespaceut__mpi__module_a3c928effe2fca32b2b549dce469e240b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+radrotrot\+\_\+xvh\+\_\+xvh\+\_\+xvh@{ut\+\_\+radrotrot\+\_\+xvh\+\_\+xvh\+\_\+xvh}}
\index{ut\+\_\+radrotrot\+\_\+xvh\+\_\+xvh\+\_\+xvh@{ut\+\_\+radrotrot\+\_\+xvh\+\_\+xvh\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+radrotrot\+\_\+xvh\+\_\+xvh\+\_\+xvh()}{ut\_radrotrot\_xvh\_xvh\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+radrotrot\+\_\+xvh\+\_\+xvh\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+L\+ON,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+L\+AT,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+R\+AD }\end{DoxyParamCaption})}



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



References ut\+\_\+l2\+\_\+ut(), ut\+\_\+rotrad\+\_\+ut(), ut\+\_\+uz(), ut\+\_\+xvh(), and xvh\+\_\+rad.


\begin{DoxyCode}
1366       \textcolor{comment}{!}
1367       \textcolor{comment}{! ベクトル v に対して r・(▽×▽×v) を計算する.}
1368       \textcolor{comment}{!}
1369       \textcolor{comment}{! 第 1, 2, 3 引数(v[λ], v[φ], v[r])がそれぞれベクトルの経度成分,}
1370       \textcolor{comment}{! 緯度成分, 動径成分を表す.}
1371       \textcolor{comment}{!}
1372       \textcolor{comment}{!    r・(▽×▽×v)  = 1/r ∂/∂r (r・( 1/cosφ・∂v[λ]/∂λ}
1373       \textcolor{comment}{!                                  + 1/cosφ・∂(v[φ] cosφ)/∂φ ) )}
1374       \textcolor{comment}{!                     + L^2 v[r]/r}
1375       \textcolor{comment}{!}
1376       \textcolor{comment}{! のスペクトルデータが返される.}
1377       \textcolor{comment}{!}
1378       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlon
1379       \textcolor{comment}{!(in) ベクトルの経度成分}
1380 
1381       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlat
1382       \textcolor{comment}{!(in) ベクトルの緯度成分}
1383 
1384       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vrad
1385       \textcolor{comment}{!(in) ベクトルの動径成分}
1386 
1387       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}     :: ut\_radrotrot\_xvh\_xvh\_xvh
1388       \textcolor{comment}{!(out) ベクトル v の r・(▽×▽×v)}
1389 
1390       ut\_radrotrot\_xvh\_xvh\_xvh = &
1391                ut\_rotrad\_ut(ut\_uz( &
1392                    (ua\_divlon\_xvb(xvh\_vlon)+ ua\_divlat\_xvb(xvh\_vlat)) )) &
1393              + ut\_l2\_ut(ut\_xvh(xvh\_vrad/xvh\_rad))
1394 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a3c928effe2fca32b2b549dce469e240b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_aadbc3e9fb522e1bc419e0c95133ca371}\label{namespaceut__mpi__module_aadbc3e9fb522e1bc419e0c95133ca371}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+rotrad\+\_\+ut@{ut\+\_\+rotrad\+\_\+ut}}
\index{ut\+\_\+rotrad\+\_\+ut@{ut\+\_\+rotrad\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+rotrad\+\_\+ut()}{ut\_rotrad\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+rotrad\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References ut\+\_\+drad\+\_\+ut(), ut\+\_\+uz(), uz\+\_\+rad, and uz\+\_\+ut().


\begin{DoxyCode}
1162       \textcolor{comment}{!}
1163       \textcolor{comment}{! 入力スペクトルデータに回転型動径微分}
1164       \textcolor{comment}{!}
1165       \textcolor{comment}{!      1/r ∂(r.)/∂r = ∂(.)/∂r + (.)/r}
1166       \textcolor{comment}{!}
1167       \textcolor{comment}{! を作用する.}
1168       \textcolor{comment}{!}
1169       \textcolor{comment}{! スペクトルデータの回転型動径微分とは, 対応する格子点データに}
1170       \textcolor{comment}{! 回転型動径微分を作用させたデータのスペクトル変換のことである.}
1171       \textcolor{comment}{!}
1172       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
1173       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
1174 
1175       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_rotrad\_ut
1176       \textcolor{comment}{!(out) 回転型動径微分を作用された 2 次元スペクトルデータ}
1177 
1178 \textcolor{comment}{!      ut\_RotRad\_ut = ut\_uz(uz\_ut(ut\_Drad\_ut(ut\_uz(uz\_Rad*uz\_ut(ut))))/uz\_Rad)}
1179       ut\_rotrad\_ut = ut\_drad\_ut(ut) + ut\_uz(1/uz\_rad*uz\_ut(ut))
1180 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_aadbc3e9fb522e1bc419e0c95133ca371_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_acd04ffa883e63b52dd3c53376ac22296}\label{namespaceut__mpi__module_acd04ffa883e63b52dd3c53376ac22296}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+rotrad\+\_\+xvh\+\_\+xvh@{ut\+\_\+rotrad\+\_\+xvh\+\_\+xvh}}
\index{ut\+\_\+rotrad\+\_\+xvh\+\_\+xvh@{ut\+\_\+rotrad\+\_\+xvh\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+rotrad\+\_\+xvh\+\_\+xvh()}{ut\_rotrad\_xvh\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+rotrad\+\_\+xvh\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vlat,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vlon }\end{DoxyParamCaption})}



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



References ut\+\_\+divlat\+\_\+xvh(), and ut\+\_\+divlon\+\_\+xvh().


\begin{DoxyCode}
1098       \textcolor{comment}{!}
1099       \textcolor{comment}{! ベクトルの緯度成分, 経度成分である第 1, 2 引数 Vlat, Vlon に対して}
1100       \textcolor{comment}{! ベクトル場の回転の動径成分}
1101       \textcolor{comment}{!}
1102       \textcolor{comment}{!    1/rcosφ・∂Vlat/∂λ - 1/rcosφ・∂(Vlon cosφ)/∂φ}
1103       \textcolor{comment}{!}
1104       \textcolor{comment}{! を計算する.}
1105       \textcolor{comment}{!}
1106       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlat
1107       \textcolor{comment}{!(in) ベクトル場の緯度成分}
1108 
1109       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlon
1110       \textcolor{comment}{!(in) ベクトル場の経度成分}
1111 
1112       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}                    :: ut\_rotrad\_xvh\_xvh
1113       \textcolor{comment}{!(out) ベクトル場の回転の動径成分}
1114 
1115         ut\_rotrad\_xvh\_xvh =   ut\_divlon\_xvh(xvh\_vlat) &
1116                             - ut\_divlat\_xvh(xvh\_vlon)
1117 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_acd04ffa883e63b52dd3c53376ac22296_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a18c4dba53683ba320726b16750dfb459}\label{namespaceut__mpi__module_a18c4dba53683ba320726b16750dfb459}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+torboundariesgrid@{ut\+\_\+torboundariesgrid}}
\index{ut\+\_\+torboundariesgrid@{ut\+\_\+torboundariesgrid}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+torboundariesgrid()}{ut\_torboundariesgrid()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+torboundariesgrid (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(dp), dimension(nmc,2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References uz\+\_\+ut().


\begin{DoxyCode}
2697       \textcolor{comment}{!}
2698       \textcolor{comment}{! 速度トロイダルポテンシャルに対して境界条件を適用する.}
2699       \textcolor{comment}{! 実空間での境界条件適用}
2700       \textcolor{comment}{!}
2701       \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
2702       \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには}
2703       \textcolor{comment}{! ut\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
2704       \textcolor{comment}{! 等しくしておく必要がある.}
2705       \textcolor{comment}{!}
2706       \textcolor{comment}{! 速度トロイダルポテンシャルΨに対して与えられる境界条件は}
2707       \textcolor{comment}{!}
2708       \textcolor{comment}{!   * 粘着条件 : Ψ = Ψb(lon,lat). Ψb は境界球面での速度分布.}
2709       \textcolor{comment}{!                                   default は 0 (静止状態).}
2710       \textcolor{comment}{!}
2711       \textcolor{comment}{!   * 応力なし条件 : ∂(Ψ/r)/∂r = 0.}
2712       \textcolor{comment}{!}
2713       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
2714       \textcolor{comment}{!}
2715       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}      :: ut\_torpot
2716               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
2717 
2718       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
2719               \textcolor{comment}{!(in) 両端境界でのトロイダルポテンシャル}
2720               \textcolor{comment}{!     粘着条件の時のみ有効}
2721 
2722       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
2723               \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
2724               \textcolor{comment}{!     RR    : 両端粘着条件}
2725               \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
2726               \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
2727               \textcolor{comment}{!     FF    : 両端応力なし条件}
2728 
2729       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
2730               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
2731               \textcolor{comment}{!     default は false.}
2732 
2733       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}           :: uz\_torpot
2734       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
2735       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}    :: kp
2736       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:lm)}              :: t\_data
2737       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:km)}              :: z\_data
2738       \textcolor{keywordtype}{logical}                               :: rigid1=.true.   \textcolor{comment}{! 境界条件}
2739       \textcolor{keywordtype}{logical}                               :: rigid2=.true.   \textcolor{comment}{! 境界条件}
2740 
2741       \textcolor{keywordtype}{logical} :: first = .true.
2742       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
2743       \textcolor{keywordtype}{integer} :: l
2744       \textcolor{keywordtype}{save}    :: alu, kp, first
2745 
2746       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
2747          rigid1=.true. ; rigid2=.true.
2748       \textcolor{keywordflow}{else}
2749          \textcolor{keywordflow}{select case} (cond)
2750          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
2751             rigid1 = .true.  ; rigid2 = .true.
2752          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
2753             rigid1 = .true.  ; rigid2 = .false.
2754          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
2755             rigid1 = .false. ; rigid2 = .true.
2756          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
2757             rigid1 = .false. ; rigid2 = .false.
2758 \textcolor{keywordflow}{         case default}
2759             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},\textcolor{stringliteral}{'B.C. not supported'})
2760 \textcolor{keywordflow}{         end select}
2761 \textcolor{keywordflow}{      endif}
2762 
2763       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
2764          new\_matrix=.false.
2765       \textcolor{keywordflow}{else}
2766          new\_matrix=new
2767 \textcolor{keywordflow}{      endif}
2768 
2769       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
2770          first = .false.
2771 
2772          \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
2773             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'TorBoundariesGrid'}, &
2774              \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
2775 \textcolor{keywordflow}{         endif}
2776 
2777          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
2778          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
2779          \textcolor{keyword}{allocate}(alu(0:km,0:lm),kp(0:lm))
2780 
2781          \textcolor{keywordflow}{do} l=0,lm
2782             t\_data = 0.0d0 ; t\_data(l)=1.0d0
2783             alu(:,l) = z\_t(t\_data)
2784 
2785             \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
2786                z\_data = z\_t(t\_data)
2787             \textcolor{keywordflow}{else}
2788                z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
2789 \textcolor{keywordflow}{            endif}
2790             alu(0,l) = z\_data(0)        \textcolor{comment}{! 境界 k=0 での条件式代入}
2791 
2792             \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
2793                z\_data = z\_t(t\_data)
2794             \textcolor{keywordflow}{else}
2795                z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
2796 \textcolor{keywordflow}{            endif}
2797             alu(km,l)   = z\_data(km)    \textcolor{comment}{! 境界 k=km での条件式代入}
2798 \textcolor{keywordflow}{         end do}
2799 
2800          \textcolor{keyword}{call }ludecomp(alu,kp)
2801 
2802          \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2803             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},&
2804                  \textcolor{stringliteral}{'Toroidal potential at k=0 was given by the optional variable.'})
2805          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid1 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
2806             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},&
2807                  \textcolor{stringliteral}{'Toroidal potential at k=0 was set to zero.'})
2808          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid1) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2809             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},&
2810                  \textcolor{stringliteral}{'Boundary value at k=0 cannot be set under stress-free condition.'})
2811 \textcolor{keywordflow}{         endif}
2812 
2813          \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2814             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},&
2815                  \textcolor{stringliteral}{'Toroidal potential at k=km was given by the optional variable.'})
2816          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid2 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
2817             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},&
2818                  \textcolor{stringliteral}{'Toroidal potential at k=km was set to zero.'})
2819          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid2) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2820             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},&
2821                  \textcolor{stringliteral}{'Boundary value at k=km cannot be set under stress-free condition.'})
2822 \textcolor{keywordflow}{         endif}
2823 
2824          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesGrid'},&
2825                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
2826 \textcolor{keywordflow}{      endif}
2827 
2828       uz\_torpot       = uz\_ut(ut\_torpot)
2829 
2830       \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2831          uz\_torpot(:,0)  = values(:,1)
2832       \textcolor{keywordflow}{else}
2833          uz\_torpot(:,0)  = 0.0d0
2834 \textcolor{keywordflow}{      endif}
2835 
2836       \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2837          uz\_torpot(:,km) = values(:,2)
2838       \textcolor{keywordflow}{else}
2839          uz\_torpot(:,km) = 0.0d0
2840 \textcolor{keywordflow}{      endif}
2841 
2842       ut\_torpot = lusolve(alu,kp,uz\_torpot)
2843 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a18c4dba53683ba320726b16750dfb459_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_afff8654c7604a675eec2df64ec12bd2b}\label{namespaceut__mpi__module_afff8654c7604a675eec2df64ec12bd2b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+torboundariestau@{ut\+\_\+torboundariestau}}
\index{ut\+\_\+torboundariestau@{ut\+\_\+torboundariestau}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+torboundariestau()}{ut\_torboundariestau()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+torboundariestau (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(dp), dimension(nmc,2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
2560       \textcolor{comment}{!}
2561       \textcolor{comment}{! 速度トロイダルポテンシャルに対して境界条件を適用する.}
2562       \textcolor{comment}{! Chebyshev 空間での境界条件適用.}
2563       \textcolor{comment}{!}
2564       \textcolor{comment}{! 速度トロイダルポテンシャルΨに対して与えられる境界条件は}
2565       \textcolor{comment}{!}
2566       \textcolor{comment}{!   * 粘着条件 : Ψ = Ψb(lon,lat). Ψb は境界球面での速度分布.}
2567       \textcolor{comment}{!                                   default は 0(静止状態).}
2568       \textcolor{comment}{!}
2569       \textcolor{comment}{!   * 応力なし条件 : ∂(Ψ/r)/∂r = 0.}
2570       \textcolor{comment}{!}
2571       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
2572       \textcolor{comment}{!}
2573       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}      :: ut\_torpot
2574               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
2575 
2576       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
2577               \textcolor{comment}{!(in) 両端境界でのトロイダルポテンシャル}
2578               \textcolor{comment}{!     粘着条件の時のみ有効}
2579 
2580       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
2581               \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
2582               \textcolor{comment}{!     RR    : 両端粘着条件}
2583               \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
2584               \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
2585               \textcolor{comment}{!     FF    : 両端応力なし条件}
2586 
2587       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
2588               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
2589               \textcolor{comment}{!     default は false.}
2590 
2591       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
2592       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}    :: kp
2593       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:lm)}              :: t\_data
2594       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:km)}              :: z\_data
2595       \textcolor{keywordtype}{logical}                               :: rigid1=.true.   \textcolor{comment}{! 境界条件}
2596       \textcolor{keywordtype}{logical}                               :: rigid2=.true.   \textcolor{comment}{! 境界条件}
2597 
2598       \textcolor{keywordtype}{logical} :: first = .true.
2599       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
2600       \textcolor{keywordtype}{integer} :: l
2601       \textcolor{keywordtype}{save}    :: alu, kp, first
2602 
2603       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
2604          rigid1=.true. ; rigid2=.true.
2605       \textcolor{keywordflow}{else}
2606          \textcolor{keywordflow}{select case} (cond)
2607          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
2608             rigid1 = .true.  ; rigid2 = .true.
2609          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
2610             rigid1 = .true.  ; rigid2 = .false.
2611          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
2612             rigid1 = .false. ; rigid2 = .true.
2613          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
2614             rigid1 = .false. ; rigid2 = .false.
2615 \textcolor{keywordflow}{         case default}
2616             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},\textcolor{stringliteral}{'B.C. not supported'})
2617 \textcolor{keywordflow}{         end select}
2618 \textcolor{keywordflow}{      endif}
2619 
2620       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
2621          new\_matrix=.false.
2622       \textcolor{keywordflow}{else}
2623          new\_matrix=new
2624 \textcolor{keywordflow}{      endif}
2625 
2626       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
2627          first = .false.
2628 
2629          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
2630          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
2631          \textcolor{keyword}{allocate}(alu(0:lm,0:lm),kp(0:lm))
2632 
2633          \textcolor{keywordflow}{do} l=0,lm
2634             t\_data = 0.0d0 ; t\_data(l) = 1.0d0
2635             alu(:,l) = t\_data
2636 
2637             \textcolor{comment}{! 力学的条件粘着条件}
2638             \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
2639                z\_data = z\_t(t\_data)
2640             \textcolor{keywordflow}{else}
2641                z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
2642 \textcolor{keywordflow}{            endif}
2643             alu(lm-1,l) = z\_data(0)       \textcolor{comment}{! 境界 k=0 での条件式代入}
2644 
2645             \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
2646                z\_data = z\_t(t\_data)
2647             \textcolor{keywordflow}{else}
2648                z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
2649 \textcolor{keywordflow}{            endif}
2650             alu(lm,l)   = z\_data(km)      \textcolor{comment}{! 境界 k=km での条件式代入}
2651 \textcolor{keywordflow}{         enddo}
2652 
2653          \textcolor{keyword}{call }ludecomp(alu,kp)
2654 
2655          \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2656             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},&
2657                  \textcolor{stringliteral}{'Toroidal potential at k=0 was given by the optional variable.'})
2658          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid1 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
2659             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},&
2660                  \textcolor{stringliteral}{'Toroidal potential at k=0 was set to zero.'})
2661          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid1) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2662             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},&
2663                  \textcolor{stringliteral}{'Boundary value k=0 cannot be set under stress-free condition.'})
2664 \textcolor{keywordflow}{         endif}
2665 
2666          \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2667             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},&
2668                  \textcolor{stringliteral}{'Toroidal potential at k=0 was given by the optional variable.'})
2669          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid2 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
2670             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},&
2671                  \textcolor{stringliteral}{'Toroidal potential at k=0 was set to zero.'})
2672          \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid2) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2673             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},&
2674                  \textcolor{stringliteral}{'Boundary value k=0 cannot be set under stress-free condition.'})
2675 \textcolor{keywordflow}{         endif}
2676 
2677          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'ut\_TorBoundariesTau'},&
2678                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
2679 \textcolor{keywordflow}{      endif}
2680 
2681       \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2682          ut\_torpot(:,lm-1) = values(:,1)
2683       \textcolor{keywordflow}{else}
2684          ut\_torpot(:,lm-1) = 0.0d0
2685 \textcolor{keywordflow}{      endif}
2686       \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
2687          ut\_torpot(:,lm)   = values(:,2)
2688       \textcolor{keywordflow}{else}
2689          ut\_torpot(:,lm) = 0.0d0
2690 \textcolor{keywordflow}{      endif}
2691 
2692       ut\_torpot = lusolve(alu,kp,ut\_torpot)
2693 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a5ea3e05e5975fa3ae45bd0105b81a30a}\label{namespaceut__mpi__module_a5ea3e05e5975fa3ae45bd0105b81a30a}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+tormagboundariesgrid@{ut\+\_\+tormagboundariesgrid}}
\index{ut\+\_\+tormagboundariesgrid@{ut\+\_\+tormagboundariesgrid}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+tormagboundariesgrid()}{ut\_tormagboundariesgrid()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+tormagboundariesgrid (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut\+\_\+\+T\+OR,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References uz\+\_\+ut().


\begin{DoxyCode}
3331       \textcolor{comment}{!}
3332       \textcolor{comment}{! 磁場トロイダルポテンシャルに対して境界条件を適用する.}
3333       \textcolor{comment}{! 鉛直実空間での境界条件適用.}
3334       \textcolor{comment}{!}
3335       \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
3336       \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには}
3337       \textcolor{comment}{! ut\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
3338       \textcolor{comment}{! 等しくしておく必要がある.}
3339       \textcolor{comment}{!}
3340       \textcolor{comment}{! 現在のところ境界物質が非電気伝導体の場合のみ対応している.}
3341       \textcolor{comment}{! その場合, 磁場トロイダルポテンシャルの境界条件は}
3342       \textcolor{comment}{!}
3343       \textcolor{comment}{! 外側}
3344       \textcolor{comment}{!    ut\_psi = 0   at the outer boundary}
3345       \textcolor{comment}{! 内側}
3346       \textcolor{comment}{!    ut\_psi = 0       at the inner boundary}
3347       \textcolor{comment}{!}
3348       \textcolor{comment}{! であるので ut\_Boundaries で対応可能だが, 将来のため別途作成しておく}
3349       \textcolor{comment}{!}
3350       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
3351       \textcolor{comment}{!}
3352       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}   :: ut\_tor
3353               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
3354 
3355       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
3356               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
3357               \textcolor{comment}{!     default は false.}
3358 
3359       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
3360       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
3361 
3362       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: ut\_i
3363       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_psi
3364       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}  :: uz\_tor
3365 
3366       \textcolor{keywordtype}{logical} :: first = .true.
3367       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
3368       \textcolor{keywordtype}{integer}  :: l
3369       \textcolor{keywordtype}{save}     :: alu, kp, first
3370 
3371       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
3372          new\_matrix=.false.
3373       \textcolor{keywordflow}{else}
3374          new\_matrix=new
3375 \textcolor{keywordflow}{      endif}
3376 
3377       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
3378          first = .false.
3379 
3380          \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
3381             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'TorMagBoundariesGrid'}, &
3382              \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
3383 \textcolor{keywordflow}{         endif}
3384 
3385          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
3386          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
3387          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(ut\_i) ) \textcolor{keyword}{deallocate}(ut\_i)
3388          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_psi) ) \textcolor{keyword}{deallocate}(uz\_psi)
3389 
3390          \textcolor{keyword}{allocate}(alu(nmc,0:km,0:lm),kp(nmc,0:lm))
3391          \textcolor{keyword}{allocate}(ut\_i(nmc,0:lm),uz\_psi(nmc,0:km))
3392 
3393          \textcolor{keywordflow}{do} l=0,lm
3394             ut\_i = 0.0d0 ; ut\_i(:,l)=1.0d0
3395             uz\_psi = uz\_ut(ut\_i)
3396             alu(:,:,l) = uz\_psi
3397 
3398             \textcolor{comment}{! 非電気伝導体}
3399             alu(:,0,l)  = uz\_psi(:,0)
3400             alu(:,km,l) = uz\_psi(:,km)
3401 \textcolor{keywordflow}{         enddo}
3402 
3403          \textcolor{keyword}{call }ludecomp(alu,kp)
3404 
3405          \textcolor{keyword}{deallocate}(ut\_i,uz\_psi)
3406 
3407          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'TormagBoundariesGrid'},&
3408                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
3409 \textcolor{keywordflow}{      endif}
3410 
3411       uz\_tor       = uz\_ut(ut\_tor)
3412       uz\_tor(:,0)  = 0.0d0
3413       uz\_tor(:,km) = 0.0d0
3414       ut\_tor = lusolve(alu,kp,uz\_tor)
3415 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a5ea3e05e5975fa3ae45bd0105b81a30a_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_aa09728f6be56b839139b514227d2fc75}\label{namespaceut__mpi__module_aa09728f6be56b839139b514227d2fc75}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+tormagboundariestau@{ut\+\_\+tormagboundariestau}}
\index{ut\+\_\+tormagboundariestau@{ut\+\_\+tormagboundariestau}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+tormagboundariestau()}{ut\_tormagboundariestau()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+tormagboundariestau (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(inout)}]{ut\+\_\+\+T\+OR,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References uz\+\_\+ut().


\begin{DoxyCode}
3253 
3254       \textcolor{comment}{! 磁場トロイダルポテンシャルに対して境界条件を適用する.}
3255       \textcolor{comment}{! Chebyshev 空間での境界条件適用}
3256       \textcolor{comment}{!}
3257       \textcolor{comment}{! チェビシェフ空間において境界条件を満たすべく高次の係数を定める方法を}
3258       \textcolor{comment}{! とっている(タウ法). 現在のところ境界物質が非電気伝導体の場合のみ}
3259       \textcolor{comment}{! 対応している. その場合, 磁場トロイダルポテンシャルの境界条件は}
3260       \textcolor{comment}{!}
3261       \textcolor{comment}{! 外側}
3262       \textcolor{comment}{!    ut\_psi = 0   at the outer boundary}
3263       \textcolor{comment}{! 内側}
3264       \textcolor{comment}{!    ut\_psi = 0       at the inner boundary}
3265       \textcolor{comment}{!}
3266       \textcolor{comment}{! であるから ut\_Boundaries で対応可能だが, 将来のため別途作成しておく.}
3267       \textcolor{comment}{!}
3268       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
3269       \textcolor{comment}{!}
3270       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)},\textcolor{keywordtype}{intent(inout)}   :: ut\_tor
3271               \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す.}
3272 
3273       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
3274               \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
3275               \textcolor{comment}{!     default は false.}
3276 
3277       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
3278       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
3279 
3280       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: ut\_i
3281       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: uz\_psi
3282 
3283       \textcolor{keywordtype}{logical} :: first = .true.
3284       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
3285       \textcolor{keywordtype}{integer}  :: l
3286       \textcolor{keywordtype}{save}     :: alu, kp, first
3287 
3288       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
3289          new\_matrix=.false.
3290       \textcolor{keywordflow}{else}
3291          new\_matrix=new
3292 \textcolor{keywordflow}{      endif}
3293 
3294       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
3295          first = .false.
3296 
3297          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
3298          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
3299          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(ut\_i) ) \textcolor{keyword}{deallocate}(ut\_i)
3300          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(uz\_psi) ) \textcolor{keyword}{deallocate}(uz\_psi)
3301 
3302          \textcolor{keyword}{allocate}(alu(nmc,0:lm,0:lm),kp(nmc,0:lm))
3303          \textcolor{keyword}{allocate}(ut\_i(nmc,0:lm),uz\_psi(nmc,0:km))
3304 
3305          \textcolor{keywordflow}{do} l=0,lm
3306             ut\_i = 0.0d0 ; ut\_i(:,l)=1.0d0
3307             alu(:,:,l) = ut\_i
3308 
3309             \textcolor{comment}{! 非電気伝導体}
3310             uz\_psi = uz\_ut(ut\_i)
3311 
3312             alu(:,lm-1,l) = uz\_psi(:,0)
3313             alu(:,lm,l)   = uz\_psi(:,km)
3314 \textcolor{keywordflow}{         enddo}
3315 
3316          \textcolor{keyword}{call }ludecomp(alu,kp)
3317 
3318          \textcolor{keyword}{deallocate}(ut\_i,uz\_psi)
3319 
3320          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'TormagBoundariesTau'},&
3321                            \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
3322 \textcolor{keywordflow}{      endif}
3323 
3324       ut\_tor(:,lm-1) = 0.0d0
3325       ut\_tor(:,lm)   = 0.0d0
3326       ut\_tor = lusolve(alu,kp,ut\_tor)
3327 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_aa09728f6be56b839139b514227d2fc75_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a724e777afeb1dc9b15e3ed20df5fd986}\label{namespaceut__mpi__module_a724e777afeb1dc9b15e3ed20df5fd986}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+uz@{ut\+\_\+uz}}
\index{ut\+\_\+uz@{ut\+\_\+uz}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+uz()}{ut\_uz()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+uz (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:km), intent(in)}]{uz }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
809      \textcolor{comment}{!}
810      \textcolor{comment}{! 水平スペクトル・動径格子点データからスペクトルデータへ(正)変換する.}
811      \textcolor{comment}{!}
812      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}, \textcolor{keywordtype}{intent(in)} :: uz
813      \textcolor{comment}{!(in) 2 次元球面調和函数スペクトル・動径格子点データ}
814      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}             :: ut\_uz
815      \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ}
816 
817      ut\_uz = at\_az(uz)
818 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a0268f2077f33b59f7b40607e434db495}\label{namespaceut__mpi__module_a0268f2077f33b59f7b40607e434db495}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+vector2vordivmpi@{ut\+\_\+vector2vordivmpi}}
\index{ut\+\_\+vector2vordivmpi@{ut\+\_\+vector2vordivmpi}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+vector2vordivmpi()}{ut\_vector2vordivmpi()}}
{\footnotesize\ttfamily subroutine, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+vector2vordivmpi (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+Lon,  }\item[{real(8), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+V\+Lat,  }\item[{real(8), dimension(nmc,0\+:lm), intent(out)}]{ut\+\_\+\+Vor,  }\item[{real(8), dimension(nmc,0\+:lm), intent(out)}]{ut\+\_\+\+Div }\end{DoxyParamCaption})}



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



References ut\+\_\+wh().


\begin{DoxyCode}
1527       \textcolor{comment}{!}
1528       \textcolor{comment}{! 速度場(格子データ)から渦度・発散(スペクトルデータ)に}
1529       \textcolor{comment}{! (正)変換する(多層用)}
1530       \textcolor{comment}{!}
1531       \textcolor{comment}{! スペクトル変換を用いず微分を計算するために, 変換回数が 2 回ですむ.}
1532       \textcolor{comment}{!}
1533       \textcolor{comment}{!   ζ = 1/cosφ∂v/∂λ - 1/cosφ ∂(u cosφ)/∂φ}
1534       \textcolor{comment}{!    D = 1/cosφ∂u/∂λ + 1/cosφ ∂(v cosφ)/∂φ}
1535       \textcolor{comment}{!}
1536       \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(in)}   :: xvh\_vlon(0:im-1,jc,kc)
1537       \textcolor{comment}{!(in) 速度経度成分}
1538 
1539       \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(in)}   :: xvh\_vlat(0:im-1,jc,kc)
1540       \textcolor{comment}{!(in) 速度緯度成分}
1541 
1542       \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(out)}   :: ut\_vor(nmc,0:lm)
1543       \textcolor{comment}{!(out) 渦度}
1544       \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(out)}   :: ut\_div(nmc,0:lm)
1545       \textcolor{comment}{!(out) 発散}
1546 
1547       \textcolor{keywordtype}{real(8)} :: wh\_vor(nc,kc)
1548       \textcolor{comment}{!速度経度成分}
1549 
1550       \textcolor{keywordtype}{real(8)} :: wh\_div(nc,kc)
1551       \textcolor{comment}{!速度緯度成分}
1552 
1553       \textcolor{keywordtype}{integer} :: k
1554 
1555       \textcolor{keywordflow}{do} k=1,kc
1556          \textcolor{keyword}{call }w\_vector2vordivmpi &
1557               (xvh\_vlon(:,:,k), xvh\_vlat(:,:,k), wh\_vor(:,k), wh\_div(:,k))
1558 \textcolor{keywordflow}{      enddo}
1559 
1560       ut\_vor = ut\_wh(wh\_vor)
1561       ut\_div = ut\_wh(wh\_div)
1562 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a0268f2077f33b59f7b40607e434db495_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ad0fa09d6c61e41883e886e2d42cd67c6}\label{namespaceut__mpi__module_ad0fa09d6c61e41883e886e2d42cd67c6}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+wh@{ut\+\_\+wh}}
\index{ut\+\_\+wh@{ut\+\_\+wh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+wh()}{ut\_wh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+wh (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc,kc), intent(in)}]{wh }\end{DoxyParamCaption})}



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



References ut\+\_\+uz().


\begin{DoxyCode}
665      \textcolor{comment}{!}
666      \textcolor{comment}{! 水平スペクトル・動径格子点データを集める.}
667      \textcolor{comment}{!}
668      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,kc)}, \textcolor{keywordtype}{intent(in)} :: wh
669      \textcolor{comment}{!(in)  2 次元球面調和函数スペクトル・動径格子点データ(分割)}
670      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}                 :: ut\_wh
671      \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ}
672 
673      \textcolor{comment}{!ut\_wh = ut\_uz(uz\_wz(wz\_wh(wh)))}
674      ut\_wh = ut\_uz(uz\_wh(wh))
675 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=344pt]{namespaceut__mpi__module_ad0fa09d6c61e41883e886e2d42cd67c6_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a05f2794fcdc6dd89fa374e0b2575a2cb}\label{namespaceut__mpi__module_a05f2794fcdc6dd89fa374e0b2575a2cb}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+wt@{ut\+\_\+wt}}
\index{ut\+\_\+wt@{ut\+\_\+wt}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+wt()}{ut\_wt()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+wt (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc,0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
744      \textcolor{comment}{!}
745      \textcolor{comment}{! スペクトルデータから水平スペクトル・動径格子点データへ(正)変換する.}
746      \textcolor{comment}{!}
747      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
748      \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
749      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}                   :: ut\_wt
750      \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ(水平再分割)}
751 
752      ut\_wt = ua\_wa(wt)
753 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a08265e5c8bcf526cadf141b451e00ba4}\label{namespaceut__mpi__module_a08265e5c8bcf526cadf141b451e00ba4}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+xvh@{ut\+\_\+xvh}}
\index{ut\+\_\+xvh@{ut\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+xvh()}{ut\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References ut\+\_\+uz().


\begin{DoxyCode}
552      \textcolor{comment}{!}
553      \textcolor{comment}{! 3 次元格子点データからスペクトルデータへ(正)変換する.}
554      \textcolor{comment}{!}
555      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}                   :: ut\_xvh
556      \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ}
557 
558      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)}  :: xvh
559      \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
560 
561      \textcolor{comment}{!ut\_xvh = ut\_uz(uz\_wz(wz\_wh(wh\_xvh(xvh))))}
562      ut\_xvh = ut\_uz(ua\_xvb(xvh))
563 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{namespaceut__mpi__module_a08265e5c8bcf526cadf141b451e00ba4_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a7dbe6d500795b0d458b504045a8a2a78}\label{namespaceut__mpi__module_a7dbe6d500795b0d458b504045a8a2a78}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!uz\+\_\+laplapol2pol\+\_\+uz@{uz\+\_\+laplapol2pol\+\_\+uz}}
\index{uz\+\_\+laplapol2pol\+\_\+uz@{uz\+\_\+laplapol2pol\+\_\+uz}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{uz\+\_\+laplapol2pol\+\_\+uz()}{uz\_laplapol2pol\_uz()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:km), public ut\+\_\+mpi\+\_\+module\+::uz\+\_\+laplapol2pol\+\_\+uz (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:km), intent(in)}]{uz,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



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



References ut\+\_\+lapla\+\_\+ut(), ut\+\_\+uz(), and uz\+\_\+ut().


\begin{DoxyCode}
2847       \textcolor{comment}{!}
2848       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを▽^2Φから計算する.}
2849       \textcolor{comment}{!}
2850       \textcolor{comment}{! チェビシェフ格子点空間で境界条件を適用している.}
2851       \textcolor{comment}{! この関数を用いるためには wt\_Initial にて設定する}
2852       \textcolor{comment}{! チェビシェフ切断波数(lm)と鉛直格子点数(km)を等しく}
2853       \textcolor{comment}{! しておく必要がある.}
2854       \textcolor{comment}{!}
2855       \textcolor{comment}{! 速度ポロイダルポテンシャルΦを f = ▽^2Φから定める式は}
2856       \textcolor{comment}{!}
2857       \textcolor{comment}{!   ▽^2Φ = f}
2858       \textcolor{comment}{!     Φ = const. at boundaries.}
2859       \textcolor{comment}{!     ∂Φ/∂r = 0 at boundaries           (粘着条件)}
2860       \textcolor{comment}{!     or ∂^2Φ/∂r^2 = 0 at boundaries    (応力なし条件)}
2861       \textcolor{comment}{!}
2862       \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
2863       \textcolor{comment}{!}
2864       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)},\textcolor{keywordtype}{intent(in)}  :: uz
2865       \textcolor{comment}{!(in) 入力▽^2φ分布}
2866 
2867       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}             :: uz\_laplapol2pol\_uz
2868       \textcolor{comment}{!(out) 出力ポロイダルポテンシャル分布}
2869 
2870       \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
2871       \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
2872       \textcolor{comment}{!     RR    : 両端粘着条件}
2873       \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
2874       \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
2875       \textcolor{comment}{!     FF    : 両端応力なし条件}
2876 
2877       \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
2878       \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
2879       \textcolor{comment}{!     default は false.}
2880 
2881       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
2882       \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
2883 
2884       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}            :: uz\_work
2885       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:km,0:km)}           :: gg
2886       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:km,0:km)}           :: gg\_work
2887       \textcolor{keywordtype}{logical}                                 :: rigid1=.true.   \textcolor{comment}{! 境界条件}
2888       \textcolor{keywordtype}{logical}                                 :: rigid2=.true.   \textcolor{comment}{! 境界条件}
2889 
2890       \textcolor{keywordtype}{logical} :: first = .true.
2891       \textcolor{keywordtype}{logical} :: new\_matrix = .false.
2892       \textcolor{keywordtype}{integer} :: k,n
2893       \textcolor{keywordtype}{save}    :: alu, kp, first
2894 
2895       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
2896          rigid1=.true. ; rigid2=.true.
2897       \textcolor{keywordflow}{else}
2898          \textcolor{keywordflow}{select case} (cond)
2899          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
2900             rigid1 = .true.  ; rigid2 = .true.
2901          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
2902             rigid1 = .true.  ; rigid2 = .false.
2903          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
2904             rigid1 = .false. ; rigid2 = .true.
2905          \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
2906             rigid1 = .false. ; rigid2 = .false.
2907 \textcolor{keywordflow}{         case default}
2908             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'uz\_LaplaPol2Pol\_uz'},\textcolor{stringliteral}{'B.C. not supported'})
2909 \textcolor{keywordflow}{         end select}
2910 \textcolor{keywordflow}{      endif}
2911 
2912       \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
2913          new\_matrix=.false.
2914       \textcolor{keywordflow}{else}
2915          new\_matrix=new
2916 \textcolor{keywordflow}{      endif}
2917 
2918       \textcolor{keywordflow}{if} ( first .OR. new\_matrix ) \textcolor{keywordflow}{then}
2919          first = .false.
2920 
2921          \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
2922             \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'uz\_LaplaPol2Pol\_uz'}, &
2923                  \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
2924 \textcolor{keywordflow}{         endif}
2925 
2926          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
2927          \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
2928          \textcolor{keyword}{allocate}(alu(nmc,0:km,0:km),kp(nmc,0:km))
2929 
2930          \textcolor{keywordflow}{do} k=0,km
2931             uz\_work = 0.0d0 ; uz\_work(:,k) = 1.0d0
2932 
2933             \textcolor{comment}{! 各水平波数に関して独立の式}
2934             alu(:,:,k) = uz\_ut(ut\_lapla\_ut(ut\_uz(uz\_work)))
2935 \textcolor{keywordflow}{         enddo}
2936 
2937          \textcolor{comment}{! 運動学的条件. 流線は境界で一定}
2938          gg = 0.0d0
2939          \textcolor{keywordflow}{do} k=0,km
2940             gg(k,k)=1.0d0
2941 \textcolor{keywordflow}{         enddo}
2942          \textcolor{keywordflow}{do} n=1,nmc
2943             alu(n,0,:)   = gg(:,0)
2944             alu(n,km,:)  = gg(:,km)
2945 \textcolor{keywordflow}{         enddo}
2946 
2947          \textcolor{comment}{! 力学的条件粘着条件}
2948          \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
2949             gg\_work=az\_at(at\_dr\_at(at\_az(gg)))
2950          \textcolor{keywordflow}{else}
2951             gg\_work=az\_at(at\_dr\_at(at\_dr\_at(at\_az(gg))))
2952 \textcolor{keywordflow}{         endif}
2953          \textcolor{keywordflow}{do} n=1,nmc
2954             alu(n,1,:) = gg\_work(:,0)
2955 \textcolor{keywordflow}{         enddo}
2956 
2957          \textcolor{comment}{! 力学的条件粘着条件}
2958          \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
2959             gg\_work=az\_at(at\_dr\_at(at\_az(gg)))
2960          \textcolor{keywordflow}{else}
2961             gg\_work=az\_at(at\_dr\_at(at\_dr\_at(at\_az(gg))))
2962 \textcolor{keywordflow}{         endif}
2963          \textcolor{keywordflow}{do} n=1,nmc
2964             alu(n,km-1,:) = gg\_work(:,km)
2965 \textcolor{keywordflow}{         enddo}
2966 
2967          \textcolor{keyword}{call }ludecomp(alu,kp)
2968 
2969          \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'uz\_LaplaPol2Pol\_uz'},&
2970               \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
2971 \textcolor{keywordflow}{      endif}
2972 
2973       uz\_work         = uz
2974       uz\_work(:,1)    = 0.0d0               \textcolor{comment}{! 力学的条件}
2975       uz\_work(:,km-1) = 0.0d0               \textcolor{comment}{! 力学的条件}
2976       uz\_work(:,0)    = 0.0d0               \textcolor{comment}{! 運動学的条件}
2977       uz\_work(:,km)   = 0.0d0               \textcolor{comment}{! 運動学的条件}
2978 
2979       uz\_laplapol2pol\_uz = lusolve(alu,kp,uz\_work)
2980 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a7dbe6d500795b0d458b504045a8a2a78_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a44207e9f0a95033ef526372154b7dcda}\label{namespaceut__mpi__module_a44207e9f0a95033ef526372154b7dcda}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!uz\+\_\+ut@{uz\+\_\+ut}}
\index{uz\+\_\+ut@{uz\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{uz\+\_\+ut()}{uz\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:km), public ut\+\_\+mpi\+\_\+module\+::uz\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
796      \textcolor{comment}{!}
797      \textcolor{comment}{! スペクトルデータから水平スペクトル・動径格子点データへ(正)変換する.}
798      \textcolor{comment}{!}
799      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
800      \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
801      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}             :: uz\_ut
802      \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ}
803 
804      uz\_ut = az\_at(ut)
805 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a837d1641a05884eba9e349c194bbd04e}\label{namespaceut__mpi__module_a837d1641a05884eba9e349c194bbd04e}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!uz\+\_\+wz@{uz\+\_\+wz}}
\index{uz\+\_\+wz@{uz\+\_\+wz}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{uz\+\_\+wz()}{uz\_wz()}}
{\footnotesize\ttfamily real(dp) function, dimension(nmc,0\+:km), public ut\+\_\+mpi\+\_\+module\+::uz\+\_\+wz (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc,0\+:km), intent(in)}]{wz }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
770      \textcolor{comment}{!}
771      \textcolor{comment}{! スペクトルデータから水平スペクトル・動径格子点データへ(正)変換する.}
772      \textcolor{comment}{!}
773      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)}, \textcolor{keywordtype}{intent(in)} :: wz
774      \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
775      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}                   :: uz\_wz
776      \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ(水平再分割)}
777 
778      uz\_wz = ua\_wa(wz)
779 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a7456474fd32c19d1b3bc10a061bb8c7f}\label{namespaceut__mpi__module_a7456474fd32c19d1b3bc10a061bb8c7f}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!v\+\_\+avrlonrad\+\_\+xvh@{v\+\_\+avrlonrad\+\_\+xvh}}
\index{v\+\_\+avrlonrad\+\_\+xvh@{v\+\_\+avrlonrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{v\+\_\+avrlonrad\+\_\+xvh()}{v\_avrlonrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(jc), public ut\+\_\+mpi\+\_\+module\+::v\+\_\+avrlonrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References v\+\_\+intlonrad\+\_\+xvh().


\begin{DoxyCode}
1947       \textcolor{comment}{!}
1948       \textcolor{comment}{! 3 次元格子点データの経度動径(緯度円)平均.}
1949       \textcolor{comment}{!}
1950       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1951       \textcolor{comment}{!}
1952       \textcolor{comment}{!     ∫f(λ,φ,r) r^2dλdr /(2π(r[o]^3-r[i]^3)/3)}
1953       \textcolor{comment}{!}
1954       \textcolor{comment}{! を計算する.}
1955       \textcolor{comment}{!}
1956       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1957       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1958 
1959       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc)}       :: v\_avrlonrad\_xvh
1960       \textcolor{comment}{!(out) 経度動径(緯度円)平均された 1 次元緯度格子点データ}
1961 
1962       v\_avrlonrad\_xvh = v\_intlonrad\_xvh(xvh) &
1963                  /(sum(x\_lon\_weight)*sum(z\_rad\_weight))
1964 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a7456474fd32c19d1b3bc10a061bb8c7f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a5b2ceefd9dfaa541115525c9bd3a6e7a}\label{namespaceut__mpi__module_a5b2ceefd9dfaa541115525c9bd3a6e7a}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!v\+\_\+avrrad\+\_\+vh@{v\+\_\+avrrad\+\_\+vh}}
\index{v\+\_\+avrrad\+\_\+vh@{v\+\_\+avrrad\+\_\+vh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{v\+\_\+avrrad\+\_\+vh()}{v\_avrrad\_vh()}}
{\footnotesize\ttfamily real(dp) function, dimension(jc), public ut\+\_\+mpi\+\_\+module\+::v\+\_\+avrrad\+\_\+vh (\begin{DoxyParamCaption}\item[{real(dp), dimension(jc,kc), intent(in)}]{vh }\end{DoxyParamCaption})}



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



References v\+\_\+intrad\+\_\+vh().


\begin{DoxyCode}
2026       \textcolor{comment}{!}
2027       \textcolor{comment}{! 2 次元(VH)格子点データの動径方向域平均.}
2028       \textcolor{comment}{!}
2029       \textcolor{comment}{! 2 次元データ f(φ,r) に対して ∫f(φ,r) r^2dr /((r[o]^3-r[i]^3)/3)}
2030       \textcolor{comment}{! を計算する.}
2031       \textcolor{comment}{!}
2032       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,kc)}, \textcolor{keywordtype}{intent(in)} :: vh
2033       \textcolor{comment}{!(in) 2 次元緯度動径(子午面)格子点データ}
2034 
2035       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc)}  :: v\_avrrad\_vh
2036       \textcolor{comment}{!(out) 動径平均された 1 次元緯度格子点データ}
2037 
2038       v\_avrrad\_vh = v\_intrad\_vh(vh)/sum(z\_rad\_weight)
2039 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a5b2ceefd9dfaa541115525c9bd3a6e7a_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_af4c15eb60325e5f2fec90ef0a2e57efb}\label{namespaceut__mpi__module_af4c15eb60325e5f2fec90ef0a2e57efb}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!v\+\_\+intlonrad\+\_\+xvh@{v\+\_\+intlonrad\+\_\+xvh}}
\index{v\+\_\+intlonrad\+\_\+xvh@{v\+\_\+intlonrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{v\+\_\+intlonrad\+\_\+xvh()}{v\_intlonrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(jc), public ut\+\_\+mpi\+\_\+module\+::v\+\_\+intlonrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References xv\+\_\+intrad\+\_\+xvh().


\begin{DoxyCode}
1656       \textcolor{comment}{!}
1657       \textcolor{comment}{! 3 次元格子点データの経度動径(緯度円)積分.}
1658       \textcolor{comment}{!}
1659       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して∫f(λ,φ,r) r^2dλdr を計算する.}
1660       \textcolor{comment}{!}
1661       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1662       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1663 
1664       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc)}       :: v\_intlonrad\_xvh
1665       \textcolor{comment}{!(out) 経度動径(緯度円)積分された 1 次元緯度格子点データ}
1666 
1667       v\_intlonrad\_xvh = v\_intlon\_xv(xv\_intrad\_xvh(xvh))
1668 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_af4c15eb60325e5f2fec90ef0a2e57efb_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a17bc6f31acab93462dd1f3d8dc88ad63}\label{namespaceut__mpi__module_a17bc6f31acab93462dd1f3d8dc88ad63}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!v\+\_\+intrad\+\_\+vh@{v\+\_\+intrad\+\_\+vh}}
\index{v\+\_\+intrad\+\_\+vh@{v\+\_\+intrad\+\_\+vh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{v\+\_\+intrad\+\_\+vh()}{v\_intrad\_vh()}}
{\footnotesize\ttfamily real(dp) function, dimension(jc), public ut\+\_\+mpi\+\_\+module\+::v\+\_\+intrad\+\_\+vh (\begin{DoxyParamCaption}\item[{real(dp), dimension(jc,kc), intent(in)}]{vh }\end{DoxyParamCaption})}



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



References intrad\+\_\+h().


\begin{DoxyCode}
1729       \textcolor{comment}{!}
1730       \textcolor{comment}{! 2 次元(VH)格子点データの動径方向域積分.}
1731       \textcolor{comment}{!}
1732       \textcolor{comment}{! 2 次元データ f(φ,r) に対して∫f(φ,r) r^2dr を計算する.}
1733       \textcolor{comment}{!}
1734       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,kc)}, \textcolor{keywordtype}{intent(in)} :: vh
1735       \textcolor{comment}{!(in) 2 次元緯度動径(子午面)格子点データ}
1736 
1737       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc)}  :: v\_intrad\_vh
1738       \textcolor{comment}{!(out) 動径積分された 1 次元緯度格子点データ}
1739 
1740       \textcolor{keywordtype}{integer} :: j
1741 
1742       \textcolor{keywordflow}{do} j=1,jc
1743          v\_intrad\_vh(j) = intrad\_h(vh(j,:))
1744 \textcolor{keywordflow}{      enddo}
1745 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a17bc6f31acab93462dd1f3d8dc88ad63_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a0edcb15ca67d6d96126c2c2ac7151992}\label{namespaceut__mpi__module_a0edcb15ca67d6d96126c2c2ac7151992}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!vh\+\_\+avrlon\+\_\+xvh@{vh\+\_\+avrlon\+\_\+xvh}}
\index{vh\+\_\+avrlon\+\_\+xvh@{vh\+\_\+avrlon\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{vh\+\_\+avrlon\+\_\+xvh()}{vh\_avrlon\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(jc,kc), public ut\+\_\+mpi\+\_\+module\+::vh\+\_\+avrlon\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References vh\+\_\+intlon\+\_\+xvh().


\begin{DoxyCode}
1874       \textcolor{comment}{!}
1875       \textcolor{comment}{! 3 次元格子点データの経度方向(帯状)平均.}
1876       \textcolor{comment}{!}
1877       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して ∫f(λ,φ,r)dλ/2π を計算する.}
1878       \textcolor{comment}{!}
1879       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1880       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1881 
1882       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,kc)}  :: vh\_avrlon\_xvh
1883       \textcolor{comment}{!(out) 経度方向(帯状)平均された 2 次元子午面格子点データ}
1884 
1885       vh\_avrlon\_xvh = vh\_intlon\_xvh(xvh)/sum(x\_lon\_weight)
1886 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a0edcb15ca67d6d96126c2c2ac7151992_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a4352fb9fdb38863a3b17cc3133c0e3c0}\label{namespaceut__mpi__module_a4352fb9fdb38863a3b17cc3133c0e3c0}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!vh\+\_\+intlon\+\_\+xvh@{vh\+\_\+intlon\+\_\+xvh}}
\index{vh\+\_\+intlon\+\_\+xvh@{vh\+\_\+intlon\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{vh\+\_\+intlon\+\_\+xvh()}{vh\_intlon\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(jc,kc), public ut\+\_\+mpi\+\_\+module\+::vh\+\_\+intlon\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1568       \textcolor{comment}{!}
1569       \textcolor{comment}{! 3 次元格子点データの経度方向(帯状)積分.}
1570       \textcolor{comment}{!}
1571       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して ∫f(λ,φ,r)dλ を計算する.}
1572       \textcolor{comment}{!}
1573       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1574       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1575 
1576       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(jc,kc)}  :: vh\_intlon\_xvh
1577       \textcolor{comment}{!(out) 経度方向(帯状)積分された 2 次元子午面格子点データ}
1578 
1579       \textcolor{keywordtype}{integer} :: i
1580 
1581       vh\_intlon\_xvh = 0.0d0
1582       \textcolor{keywordflow}{do} i=0,im-1
1583          vh\_intlon\_xvh(:,:) = vh\_intlon\_xvh(:,:) &
1584               + xvh(i,:,:) * x\_lon\_weight(i)
1585 \textcolor{keywordflow}{      enddo}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a615a116c205ceb196afc3a0aa830d7da}\label{namespaceut__mpi__module_a615a116c205ceb196afc3a0aa830d7da}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wh\+\_\+ut@{wh\+\_\+ut}}
\index{wh\+\_\+ut@{wh\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wh\+\_\+ut()}{wh\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nc,kc), public ut\+\_\+mpi\+\_\+module\+::wh\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References uz\+\_\+ut().


\begin{DoxyCode}
679      \textcolor{comment}{!}
680      \textcolor{comment}{! 水平スペクトル・動径格子点データを分割する.}
681      \textcolor{comment}{!}
682      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)}       :: ut
683      \textcolor{comment}{!(in) 2 次元球面調和函数スペクトル・動径格子点データ}
684      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,kc)}               :: wh\_ut
685      \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ(分割)}
686 
687      wh\_ut = wh\_uz(uz\_ut(ut))
688 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=344pt]{namespaceut__mpi__module_a615a116c205ceb196afc3a0aa830d7da_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ae273a1b08f56d4c6df3ee16dcf988937}\label{namespaceut__mpi__module_ae273a1b08f56d4c6df3ee16dcf988937}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wh\+\_\+wz@{wh\+\_\+wz}}
\index{wh\+\_\+wz@{wh\+\_\+wz}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wh\+\_\+wz()}{wh\_wz()}}
{\footnotesize\ttfamily real(dp) function, dimension(nc,kc), public ut\+\_\+mpi\+\_\+module\+::wh\+\_\+wz (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc,0\+:km), intent(in)}]{wz }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
705      \textcolor{comment}{!}
706      \textcolor{comment}{! 水平スペクトル・動径格子点データを分割する.}
707      \textcolor{comment}{!}
708      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)}, \textcolor{keywordtype}{intent(in)} :: wz
709      \textcolor{comment}{!(in) 2 次元球面調和函数スペクトル・動径格子点データ}
710      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,kc)}               :: wh\_wz
711      \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ(分割)}
712 
713      wh\_wz = ab\_aa(wz)
714 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a1b02bd64052f82f6bfd30620a848f97b}\label{namespaceut__mpi__module_a1b02bd64052f82f6bfd30620a848f97b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wt\+\_\+ut@{wt\+\_\+ut}}
\index{wt\+\_\+ut@{wt\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+ut()}{wt\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(nc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::wt\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
757      \textcolor{comment}{!}
758      \textcolor{comment}{! 水平スペクトル・動径格子点データからスペクトルデータへ(正)変換する.}
759      \textcolor{comment}{!}
760      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)}       :: ut
761      \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ(水平再分割)}
762      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:lm)}             :: wt\_ut
763      \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ}
764 
765      wt\_ut = wa\_ua(ut)
766 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_ac5042b60eebc0c40913d3bef605db4bb}\label{namespaceut__mpi__module_ac5042b60eebc0c40913d3bef605db4bb}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wt\+\_\+wz@{wt\+\_\+wz}}
\index{wt\+\_\+wz@{wt\+\_\+wz}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+wz()}{wt\_wz()}}
{\footnotesize\ttfamily real(dp) function, dimension(nc,0\+:lm), public ut\+\_\+mpi\+\_\+module\+::wt\+\_\+wz (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc,0\+:km), intent(in)}]{wz }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
731      \textcolor{comment}{!}
732      \textcolor{comment}{! 水平スペクトル・動径格子点データからスペクトルデータへ(正)変換する.}
733      \textcolor{comment}{!}
734      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)}, \textcolor{keywordtype}{intent(in)} :: wz
735      \textcolor{comment}{!(in) 2 次元球面調和函数スペクトル・動径格子点データ}
736      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:lm)}             :: wt\_wz
737      \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ}
738 
739      wt\_wz = at\_az(wz)
740 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a5341c7d9086cded4c0715764943288f6}\label{namespaceut__mpi__module_a5341c7d9086cded4c0715764943288f6}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wz\+\_\+uz@{wz\+\_\+uz}}
\index{wz\+\_\+uz@{wz\+\_\+uz}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wz\+\_\+uz()}{wz\_uz()}}
{\footnotesize\ttfamily real(dp) function, dimension(nc,0\+:km), public ut\+\_\+mpi\+\_\+module\+::wz\+\_\+uz (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:km), intent(in)}]{uz }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
783      \textcolor{comment}{!}
784      \textcolor{comment}{! 水平スペクトル・動径格子点データからスペクトルデータへ(正)変換する.}
785      \textcolor{comment}{!}
786      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:km)}, \textcolor{keywordtype}{intent(in)}       :: uz
787      \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ(水平再分割)}
788      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)}             :: wz\_uz
789      \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ}
790 
791      wz\_uz = wa\_ua(uz)
792 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a21720eb02213ecc3287c6855fe4ca394}\label{namespaceut__mpi__module_a21720eb02213ecc3287c6855fe4ca394}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wz\+\_\+wh@{wz\+\_\+wh}}
\index{wz\+\_\+wh@{wz\+\_\+wh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wz\+\_\+wh()}{wz\_wh()}}
{\footnotesize\ttfamily real(dp) function, dimension(nc,0\+:km), public ut\+\_\+mpi\+\_\+module\+::wz\+\_\+wh (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc,kc), intent(in)}]{wh }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
692      \textcolor{comment}{!}
693      \textcolor{comment}{! 水平スペクトル・動径格子点データを集める.}
694      \textcolor{comment}{!}
695      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,kc)}, \textcolor{keywordtype}{intent(in)} :: wh
696      \textcolor{comment}{!(in)  2 次元球面調和函数スペクトル・動径格子点データ(分割)}
697      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)}           :: wz\_wh
698      \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ}
699 
700      wz\_wh = aa\_ab(wh)
701 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a30040985887362f7197a090cf5d62f8b}\label{namespaceut__mpi__module_a30040985887362f7197a090cf5d62f8b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wz\+\_\+wt@{wz\+\_\+wt}}
\index{wz\+\_\+wt@{wz\+\_\+wt}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wz\+\_\+wt()}{wz\_wt()}}
{\footnotesize\ttfamily real(dp) function, dimension(nc,0\+:km), public ut\+\_\+mpi\+\_\+module\+::wz\+\_\+wt (\begin{DoxyParamCaption}\item[{real(dp), dimension(nc,0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
718      \textcolor{comment}{!}
719      \textcolor{comment}{! スペクトルデータから水平スペクトル・動径格子点データへ(正)変換する.}
720      \textcolor{comment}{!}
721      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
722      \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
723      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nc,0:km)}             :: wz\_wt
724      \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ}
725 
726      wz\_wt = az\_at(wt)
727 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a49ee30b758bf36d6f856eaddfd5585b4}\label{namespaceut__mpi__module_a49ee30b758bf36d6f856eaddfd5585b4}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!x\+\_\+avrlatrad\+\_\+xvh@{x\+\_\+avrlatrad\+\_\+xvh}}
\index{x\+\_\+avrlatrad\+\_\+xvh@{x\+\_\+avrlatrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{x\+\_\+avrlatrad\+\_\+xvh()}{x\_avrlatrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1), public ut\+\_\+mpi\+\_\+module\+::x\+\_\+avrlatrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References x\+\_\+intlatrad\+\_\+xvh().


\begin{DoxyCode}
1926       \textcolor{comment}{!}
1927       \textcolor{comment}{! 3 次元格子点データの緯度動径(子午面)平均}
1928       \textcolor{comment}{!}
1929       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1930       \textcolor{comment}{!}
1931       \textcolor{comment}{!    ∫f(λ,,r) r^2cosφ dφdr /(2(r[o]^3-r[i]^3)/3)}
1932       \textcolor{comment}{!}
1933       \textcolor{comment}{! を計算する.}
1934       \textcolor{comment}{!}
1935       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1936       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1937 
1938       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1)}     :: x\_avrlatrad\_xvh
1939       \textcolor{comment}{!(out) 緯度動径(子午面)平均された 1 次元経度格子点データ}
1940 
1941       x\_avrlatrad\_xvh = x\_intlatrad\_xvh(xvh) &
1942                    /( sum(y\_lat\_weight)*sum(z\_rad\_weight) )
1943 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a49ee30b758bf36d6f856eaddfd5585b4_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a9a64b8edac4a400182fcdfe3922ae0c8}\label{namespaceut__mpi__module_a9a64b8edac4a400182fcdfe3922ae0c8}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!x\+\_\+avrrad\+\_\+xh@{x\+\_\+avrrad\+\_\+xh}}
\index{x\+\_\+avrrad\+\_\+xh@{x\+\_\+avrrad\+\_\+xh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{x\+\_\+avrrad\+\_\+xh()}{x\_avrrad\_xh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1), public ut\+\_\+mpi\+\_\+module\+::x\+\_\+avrrad\+\_\+xh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,kc), intent(in)}]{xh }\end{DoxyParamCaption})}



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



References x\+\_\+intrad\+\_\+xh().


\begin{DoxyCode}
2080       \textcolor{comment}{!}
2081       \textcolor{comment}{! 2 次元(XH)格子点データの動径方向域平均.}
2082       \textcolor{comment}{!}
2083       \textcolor{comment}{! 2 次元データ f(λ,r) に対して}
2084       \textcolor{comment}{!}
2085       \textcolor{comment}{!   ∫f(λ,r) r^2dr /((r[o]^3-r[i]^3)/3)}
2086       \textcolor{comment}{!}
2087       \textcolor{comment}{! を計算する.}
2088       \textcolor{comment}{!}
2089       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,kc)}, \textcolor{keywordtype}{intent(in)} :: xh
2090       \textcolor{comment}{!(in) 2 次元緯度動径格子点データ}
2091 
2092       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1)}  :: x\_avrrad\_xh
2093       \textcolor{comment}{!(out) 動径平均された 1 次元経度格子点データ}
2094 
2095       x\_avrrad\_xh = x\_intrad\_xh(xh)/sum(z\_rad\_weight)
2096 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a9a64b8edac4a400182fcdfe3922ae0c8_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ae270447c21b862fca04e281e9b8c4729}\label{namespaceut__mpi__module_ae270447c21b862fca04e281e9b8c4729}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!x\+\_\+intlatrad\+\_\+xvh@{x\+\_\+intlatrad\+\_\+xvh}}
\index{x\+\_\+intlatrad\+\_\+xvh@{x\+\_\+intlatrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{x\+\_\+intlatrad\+\_\+xvh()}{x\_intlatrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1), public ut\+\_\+mpi\+\_\+module\+::x\+\_\+intlatrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References x\+\_\+intrad\+\_\+xh().


\begin{DoxyCode}
1636       \textcolor{comment}{!}
1637       \textcolor{comment}{! 3 次元格子点データの緯度動径(子午面)積分}
1638       \textcolor{comment}{!}
1639       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1640       \textcolor{comment}{!}
1641       \textcolor{comment}{!    ∫f(λ,φ,r) r^2cosφ dφdr}
1642       \textcolor{comment}{!}
1643       \textcolor{comment}{! を計算する.}
1644       \textcolor{comment}{!}
1645       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1646       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1647 
1648       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1)}     :: x\_intlatrad\_xvh
1649       \textcolor{comment}{!(out) 緯度動径(子午面)積分された 1 次元経度格子点データ}
1650 
1651       x\_intlatrad\_xvh = x\_intrad\_xh(xb\_intlat\_xvb(xvh))
1652 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ae270447c21b862fca04e281e9b8c4729_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a78a894eafe47af26a86eed1415d6ddba}\label{namespaceut__mpi__module_a78a894eafe47af26a86eed1415d6ddba}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!x\+\_\+intrad\+\_\+xh@{x\+\_\+intrad\+\_\+xh}}
\index{x\+\_\+intrad\+\_\+xh@{x\+\_\+intrad\+\_\+xh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{x\+\_\+intrad\+\_\+xh()}{x\_intrad\_xh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1), public ut\+\_\+mpi\+\_\+module\+::x\+\_\+intrad\+\_\+xh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,kc), intent(in)}]{xh }\end{DoxyParamCaption})}



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



References intrad\+\_\+h().


\begin{DoxyCode}
1788       \textcolor{comment}{!}
1789       \textcolor{comment}{! 2 次元(XH)格子点データの動径方向域積分.}
1790       \textcolor{comment}{!}
1791       \textcolor{comment}{! 2 次元データ f(λ,r) に対して ∫f(λ,r) r^2dr を計算する.}
1792       \textcolor{comment}{!}
1793       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,kc)}, \textcolor{keywordtype}{intent(in)} :: xh
1794       \textcolor{comment}{!(in) 2 次元緯度動径格子点データ}
1795 
1796       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1)}  :: x\_intrad\_xh
1797       \textcolor{comment}{!(out) 動径積分された 1 次元経度格子点データ}
1798 
1799       \textcolor{keywordtype}{integer} :: i
1800 
1801       \textcolor{keywordflow}{do} i=0,im-1
1802          x\_intrad\_xh(i) = intrad\_h(xh(i,:))
1803 \textcolor{keywordflow}{      enddo}
1804 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a78a894eafe47af26a86eed1415d6ddba_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ad6be669f16c9f4f2b155cf5047eca74f}\label{namespaceut__mpi__module_ad6be669f16c9f4f2b155cf5047eca74f}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xh\+\_\+avrlat\+\_\+xvh@{xh\+\_\+avrlat\+\_\+xvh}}
\index{xh\+\_\+avrlat\+\_\+xvh@{xh\+\_\+avrlat\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xh\+\_\+avrlat\+\_\+xvh()}{xh\_avrlat\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(im,kc), public ut\+\_\+mpi\+\_\+module\+::xh\+\_\+avrlat\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References xh\+\_\+intlat\+\_\+xvh().


\begin{DoxyCode}
1890       \textcolor{comment}{!}
1891       \textcolor{comment}{! 3 次元格子点データの緯度方向域平均.}
1892       \textcolor{comment}{!}
1893       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して ∫f(λ,φ,r)cosφ dφ/2 を計算する.}
1894       \textcolor{comment}{!}
1895       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1896       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1897 
1898       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(im,kc)}  :: xh\_avrlat\_xvh
1899       \textcolor{comment}{!(out) 緯度平均された 2 次元緯度動径格子点データ}
1900 
1901       xh\_avrlat\_xvh = xh\_intlat\_xvh(xvh)/sum(y\_lat\_weight)
1902 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_ad6be669f16c9f4f2b155cf5047eca74f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a21abf6ec1f5c9ba30c06dddb2eeae323}\label{namespaceut__mpi__module_a21abf6ec1f5c9ba30c06dddb2eeae323}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xh\+\_\+intlat\+\_\+xvh@{xh\+\_\+intlat\+\_\+xvh}}
\index{xh\+\_\+intlat\+\_\+xvh@{xh\+\_\+intlat\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xh\+\_\+intlat\+\_\+xvh()}{xh\_intlat\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,kc), public ut\+\_\+mpi\+\_\+module\+::xh\+\_\+intlat\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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


\begin{DoxyCode}
1589       \textcolor{comment}{!}
1590       \textcolor{comment}{! 3 次元格子点データの緯度方向域積分.}
1591       \textcolor{comment}{!}
1592       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して∫f(λ,φ,r) cosφ dφ を計算する.}
1593       \textcolor{comment}{!}
1594       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1595       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1596 
1597       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,kc)} :: xh\_intlat\_xvh        \textcolor{comment}{! 緯度円格子点データ}
1598       \textcolor{comment}{!(out) 緯度積分された 2 次元緯度動径格子点データ}
1599 
1600       xh\_intlat\_xvh = xb\_intlat\_xvb(xvh)
1601 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a5d7d0283f7087b09d9f9b29b56dd4b93}\label{namespaceut__mpi__module_a5d7d0283f7087b09d9f9b29b56dd4b93}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xv\+\_\+avrrad\+\_\+xvh@{xv\+\_\+avrrad\+\_\+xvh}}
\index{xv\+\_\+avrrad\+\_\+xvh@{xv\+\_\+avrrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xv\+\_\+avrrad\+\_\+xvh()}{xv\_avrrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc), public ut\+\_\+mpi\+\_\+module\+::xv\+\_\+avrrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References xv\+\_\+intrad\+\_\+xvh().


\begin{DoxyCode}
1906       \textcolor{comment}{!}
1907       \textcolor{comment}{! 3 次元格子点データの動径方向域平均.}
1908       \textcolor{comment}{!}
1909       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して}
1910       \textcolor{comment}{!}
1911       \textcolor{comment}{!    ∫f(λ,φ,r) r^2dr/((r[o]^3-r[i]^3)/3)}
1912       \textcolor{comment}{!}
1913       \textcolor{comment}{! を計算する.}
1914       \textcolor{comment}{!}
1915       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1916       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1917 
1918       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc)}  :: xv\_avrrad\_xvh          \textcolor{comment}{! 水平格子点データ}
1919       \textcolor{comment}{!(out) 動径平均された 2 次元経度緯度(水平, 球面)格子点データ}
1920 
1921       xv\_avrrad\_xvh = xv\_intrad\_xvh(xvh)/sum(z\_rad\_weight)
1922 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a5d7d0283f7087b09d9f9b29b56dd4b93_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_aeb92ef2970dc8494d35ab57cab968441}\label{namespaceut__mpi__module_aeb92ef2970dc8494d35ab57cab968441}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xv\+\_\+intrad\+\_\+xvh@{xv\+\_\+intrad\+\_\+xvh}}
\index{xv\+\_\+intrad\+\_\+xvh@{xv\+\_\+intrad\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xv\+\_\+intrad\+\_\+xvh()}{xv\_intrad\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc), public ut\+\_\+mpi\+\_\+module\+::xv\+\_\+intrad\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh }\end{DoxyParamCaption})}



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



References h\+\_\+rad\+\_\+weight, and ua\+\_\+mpi\+\_\+module\+\_\+base\+::mpi\+\_\+comm\+\_\+v.


\begin{DoxyCode}
1605       \textcolor{comment}{!}
1606       \textcolor{comment}{! 3 次元格子点データの動径方向域積分.}
1607       \textcolor{comment}{!}
1608       \textcolor{comment}{! 3 次元データ f(λ,φ,r) に対して∫f(λ,φ,r) r^2dr を計算する.}
1609       \textcolor{comment}{!}
1610       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh
1611       \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
1612 
1613       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc)}  :: xv\_intrad\_xvh
1614       \textcolor{comment}{!(out) 動径積分された 2 次元経度緯度(水平, 球面)格子点データ}
1615 
1616       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc)}  :: xv\_intradtmp
1617 
1618       \textcolor{keywordtype}{integer} :: i,j,k,ierr
1619 
1620       xv\_intradtmp = 0.0d0
1621       \textcolor{keywordflow}{do} k=1,kc
1622          \textcolor{keywordflow}{do} j=1,jc
1623             \textcolor{keywordflow}{do} i=0,im-1
1624                xv\_intradtmp(i,j) = xv\_intradtmp(i,j) &
1625                     + xvh(i,j,k) * h\_rad\_weight(k)
1626 \textcolor{keywordflow}{            enddo}
1627 \textcolor{keywordflow}{         enddo}
1628 \textcolor{keywordflow}{      end do}
1629 
1630       \textcolor{keyword}{CALL }mpi\_allreduce(xv\_intradtmp,xv\_intrad\_xvh,im*jc,mpi\_real8, &
1631                          mpi\_sum,mpi\_comm\_v,ierr)
1632 
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_aca314b51fab6fd51eb6145e0a14d72d2}\label{namespaceut__mpi__module_aca314b51fab6fd51eb6145e0a14d72d2}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh@{xvh\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh}}
\index{xvh\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh@{xvh\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh()}{xvh\_div\_xvh\_xvh\_xvh()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc,kc), public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vlon,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vlat,  }\item[{real(dp), dimension(0\+:im-\/1,jc,kc), intent(in)}]{xvh\+\_\+\+Vrad }\end{DoxyParamCaption})}



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



References ut\+\_\+div\+\_\+xvh\+\_\+xvh\+\_\+xvh(), xvh\+\_\+lat, xvh\+\_\+rad, and xvh\+\_\+ut().


\begin{DoxyCode}
1018       \textcolor{comment}{!}
1019       \textcolor{comment}{! ベクトル成分である 3 つの格子データに発散を作用させる.}
1020       \textcolor{comment}{!}
1021       \textcolor{comment}{! 第 1, 2 ,3 引数(u,v,w)がそれぞれベクトルの経度成分, 緯度成分,}
1022       \textcolor{comment}{! 動径成分を表す.}
1023       \textcolor{comment}{!}
1024       \textcolor{comment}{! 極の特異性を回避するためにベクトル場に cosφ/r の重みをかけて}
1025       \textcolor{comment}{! 計算している.}
1026       \textcolor{comment}{!}
1027       \textcolor{comment}{!      div V = (r/cosφ)・div (Vcosφ/r) + V\_φtanφ/r + V\_r/r}
1028       \textcolor{comment}{!}
1029       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlon
1030       \textcolor{comment}{!(in) ベクトル場の経度成分}
1031 
1032       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vlat
1033       \textcolor{comment}{!(in) ベクトル場の緯度成分}
1034 
1035       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}, \textcolor{keywordtype}{intent(in)} :: xvh\_vrad
1036       \textcolor{comment}{!(in) ベクトル場の動径成分}
1037 
1038       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}             :: xvh\_div\_xvh\_xvh\_xvh
1039       \textcolor{comment}{!(out) ベクトル場の発散}
1040 
1041       xvh\_div\_xvh\_xvh\_xvh &
1042            = xvh\_rad/cos(xvh\_lat) &
1043                 * xvh\_ut(ut\_div\_xvh\_xvh\_xvh(xvh\_vlon*cos(xvh\_lat)/xvh\_rad,  &
1044                                             xvh\_vlat*cos(xvh\_lat)/xvh\_rad,  &
1045                                             xvh\_vrad*cos(xvh\_lat)/xvh\_rad ))&
1046              + xvh\_vlat*tan(xvh\_lat)/xvh\_rad &
1047              + xvh\_vrad/xvh\_rad
1048 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_aca314b51fab6fd51eb6145e0a14d72d2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a180d647fa22a21b25b5f703bd3b6aa17}\label{namespaceut__mpi__module_a180d647fa22a21b25b5f703bd3b6aa17}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+gradlat\+\_\+ut@{xvh\+\_\+gradlat\+\_\+ut}}
\index{xvh\+\_\+gradlat\+\_\+ut@{xvh\+\_\+gradlat\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+gradlat\+\_\+ut()}{xvh\_gradlat\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc,kc), public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+gradlat\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References uz\+\_\+ut(), and xvh\+\_\+rad.


\begin{DoxyCode}
945       \textcolor{comment}{!}
946       \textcolor{comment}{! スペクトルデータに勾配型経度微分 1/r ∂/∂φ を作用させる.}
947       \textcolor{comment}{!}
948       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
949       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
950 
951       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}      :: xvh\_gradlat\_ut
952       \textcolor{comment}{!(out) 勾配型緯度微分を作用された 2 次元スペクトルデータ}
953 
954       xvh\_gradlat\_ut = xvb\_gradlat\_ua(uz\_ut(ut))/xvh\_rad
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=333pt]{namespaceut__mpi__module_a180d647fa22a21b25b5f703bd3b6aa17_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a82a28f5ec0bea91780ba924b4d9d275f}\label{namespaceut__mpi__module_a82a28f5ec0bea91780ba924b4d9d275f}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+gradlon\+\_\+ut@{xvh\+\_\+gradlon\+\_\+ut}}
\index{xvh\+\_\+gradlon\+\_\+ut@{xvh\+\_\+gradlon\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+gradlon\+\_\+ut()}{xvh\_gradlon\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc,kc), public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+gradlon\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References uz\+\_\+ut(), and xvh\+\_\+rad.


\begin{DoxyCode}
930       \textcolor{comment}{!}
931       \textcolor{comment}{! スペクトルデータに勾配型経度微分 1/rcosφ・∂/∂λ}
932       \textcolor{comment}{! を作用させる.}
933       \textcolor{comment}{!}
934       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
935       \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
936 
937       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}      :: xvh\_gradlon\_ut
938       \textcolor{comment}{!(out) 勾配型経度微分を作用された 2 次元スペクトルデータ}
939 
940       xvh\_gradlon\_ut = xvb\_gradlon\_ua(uz\_ut(ut))/xvh\_rad
941 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=333pt]{namespaceut__mpi__module_a82a28f5ec0bea91780ba924b4d9d275f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a81f404ff0e5c36c210b56060dd0c9a8a}\label{namespaceut__mpi__module_a81f404ff0e5c36c210b56060dd0c9a8a}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+rotlat\+\_\+ut\+\_\+ut@{xvh\+\_\+rotlat\+\_\+ut\+\_\+ut}}
\index{xvh\+\_\+rotlat\+\_\+ut\+\_\+ut@{xvh\+\_\+rotlat\+\_\+ut\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+rotlat\+\_\+ut\+\_\+ut()}{xvh\_rotlat\_ut\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc,kc), public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+rotlat\+\_\+ut\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+Vlon,  }\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+Vrad }\end{DoxyParamCaption})}



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



References ut\+\_\+rotrad\+\_\+ut(), xvh\+\_\+gradlon\+\_\+ut(), and xvh\+\_\+ut().


\begin{DoxyCode}
1075       \textcolor{comment}{!}
1076       \textcolor{comment}{! ベクトル場の経度成分, 動径成分である第 1, 2 引数 Vlon, Vrad から}
1077       \textcolor{comment}{! 回転の緯度成分}
1078       \textcolor{comment}{!}
1079       \textcolor{comment}{!    1/r ∂(r Vlon)/∂r - 1/rcosφ・∂Vrad/∂λ}
1080       \textcolor{comment}{!}
1081       \textcolor{comment}{! を計算する.}
1082       \textcolor{comment}{!}
1083       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_vlon
1084       \textcolor{comment}{!(in) ベクトル場の経度成分}
1085 
1086       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_vrad
1087       \textcolor{comment}{!(in) ベクトル場の動径成分}
1088 
1089       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}      :: xvh\_rotlat\_ut\_ut
1090       \textcolor{comment}{!(out) ベクトル場の回転の緯度成分}
1091 
1092         xvh\_rotlat\_ut\_ut =   xvh\_ut(ut\_rotrad\_ut(ut\_vlon)) &
1093                            - xvh\_gradlon\_ut(ut\_vrad)
1094 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a81f404ff0e5c36c210b56060dd0c9a8a_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_a78aca0397330153607a8b56cd0522b68}\label{namespaceut__mpi__module_a78aca0397330153607a8b56cd0522b68}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+rotlon\+\_\+ut\+\_\+ut@{xvh\+\_\+rotlon\+\_\+ut\+\_\+ut}}
\index{xvh\+\_\+rotlon\+\_\+ut\+\_\+ut@{xvh\+\_\+rotlon\+\_\+ut\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+rotlon\+\_\+ut\+\_\+ut()}{xvh\_rotlon\_ut\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc,kc), public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+rotlon\+\_\+ut\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+Vrad,  }\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut\+\_\+\+Vlat }\end{DoxyParamCaption})}



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



References ut\+\_\+rotrad\+\_\+ut(), xvh\+\_\+gradlat\+\_\+ut(), and xvh\+\_\+ut().


\begin{DoxyCode}
1052       \textcolor{comment}{!}
1053       \textcolor{comment}{! ベクトル場の動径成分, 緯度成分である第 1, 2 引数 Vrad, Vlat から}
1054       \textcolor{comment}{! 回転の経度成分}
1055       \textcolor{comment}{!}
1056       \textcolor{comment}{!    1/r ∂Vrad/∂φ-1/r ∂(r Vlat)/∂r を計算する.}
1057       \textcolor{comment}{!}
1058       \textcolor{comment}{! を計算する}
1059       \textcolor{comment}{!}
1060       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_vrad
1061       \textcolor{comment}{!(in) ベクトル場の動径成分}
1062 
1063       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut\_vlat
1064       \textcolor{comment}{!(in) ベクトル場の緯度成分}
1065 
1066       \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}      :: xvh\_rotlon\_ut\_ut
1067       \textcolor{comment}{!(out) ベクトル場の回転の経度成分}
1068 
1069         xvh\_rotlon\_ut\_ut =   xvh\_gradlat\_ut(ut\_vrad) &
1070                            - xvh\_ut(ut\_rotrad\_ut(ut\_vlat))
1071 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespaceut__mpi__module_a78aca0397330153607a8b56cd0522b68_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespaceut__mpi__module_ae8269ff48efe3f37b1b76dc84ab49f67}\label{namespaceut__mpi__module_ae8269ff48efe3f37b1b76dc84ab49f67}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+ut@{xvh\+\_\+ut}}
\index{xvh\+\_\+ut@{xvh\+\_\+ut}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+ut()}{xvh\_ut()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:im-\/1,jc,kc), public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+ut (\begin{DoxyParamCaption}\item[{real(dp), dimension(nmc,0\+:lm), intent(in)}]{ut }\end{DoxyParamCaption})}



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



References uz\+\_\+ut().


\begin{DoxyCode}
567      \textcolor{comment}{!}
568      \textcolor{comment}{! 水平スペクトル・動径格子点データから 3 次元格子点データへ(逆)変換する.}
569      \textcolor{comment}{!}
570      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(0:im-1,jc,kc)}        :: xvh\_ut
571      \textcolor{comment}{!(out) 3 次元経度緯度動径格子点データ}
572 
573      \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(nmc,0:lm)}, \textcolor{keywordtype}{intent(in)} :: ut
574      \textcolor{comment}{!(in) 2 次元球面調和函数スペクトル・動径格子点データ}
575 
576      xvh\_ut = xvb\_ua(uz\_ut(ut))
577 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{namespaceut__mpi__module_ae8269ff48efe3f37b1b76dc84ab49f67_cgraph}
\end{center}
\end{figure}


\subsection{Variable Documentation}
\mbox{\Hypertarget{namespaceut__mpi__module_a19f62f105aab496d228e5d975acfd9e6}\label{namespaceut__mpi__module_a19f62f105aab496d228e5d975acfd9e6}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+rad@{h\+\_\+rad}}
\index{h\+\_\+rad@{h\+\_\+rad}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+rad}{h\_rad}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, public ut\+\_\+mpi\+\_\+module\+::h\+\_\+rad}



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


\begin{DoxyCode}
463   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}     :: h\_rad                     \textcolor{comment}{! 座標}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a120aed41e8a3e9c431f555e983bc778b}\label{namespaceut__mpi__module_a120aed41e8a3e9c431f555e983bc778b}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!h\+\_\+rad\+\_\+weight@{h\+\_\+rad\+\_\+weight}}
\index{h\+\_\+rad\+\_\+weight@{h\+\_\+rad\+\_\+weight}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{h\+\_\+rad\+\_\+weight}{h\_rad\_weight}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, public ut\+\_\+mpi\+\_\+module\+::h\+\_\+rad\+\_\+weight}



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


\begin{DoxyCode}
464   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}     :: h\_rad\_weight              \textcolor{comment}{! 座標}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_aa9f687d105a67d8f5931513f96fc70aa}\label{namespaceut__mpi__module_aa9f687d105a67d8f5931513f96fc70aa}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!ut\+\_\+vmiss@{ut\+\_\+vmiss}}
\index{ut\+\_\+vmiss@{ut\+\_\+vmiss}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{ut\+\_\+vmiss}{ut\_vmiss}}
{\footnotesize\ttfamily real(dp), save, public ut\+\_\+mpi\+\_\+module\+::ut\+\_\+vmiss = -\/999.\+0}



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


\begin{DoxyCode}
466   \textcolor{keywordtype}{real(DP)} :: ut\_vmiss = -999.0        \textcolor{comment}{! 欠損値}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a14acbdd359394865ddbf8860897295cd}\label{namespaceut__mpi__module_a14acbdd359394865ddbf8860897295cd}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!uz\+\_\+rad@{uz\+\_\+rad}}
\index{uz\+\_\+rad@{uz\+\_\+rad}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{uz\+\_\+rad}{uz\_rad}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:), allocatable, public ut\+\_\+mpi\+\_\+module\+::uz\+\_\+rad}



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


\begin{DoxyCode}
462   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}   :: uz\_rad                    \textcolor{comment}{! 座標}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a87e821c02649c81d5ceb46a4b00bf256}\label{namespaceut__mpi__module_a87e821c02649c81d5ceb46a4b00bf256}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!wh\+\_\+rad@{wh\+\_\+rad}}
\index{wh\+\_\+rad@{wh\+\_\+rad}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{wh\+\_\+rad}{wh\_rad}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:), allocatable, public ut\+\_\+mpi\+\_\+module\+::wh\+\_\+rad}



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


\begin{DoxyCode}
461   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}   :: wh\_rad                    \textcolor{comment}{! 座標}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_a2a7dc1c6e45ea5e4867ae67678fc33f9}\label{namespaceut__mpi__module_a2a7dc1c6e45ea5e4867ae67678fc33f9}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+lat@{xvh\+\_\+lat}}
\index{xvh\+\_\+lat@{xvh\+\_\+lat}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+lat}{xvh\_lat}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:,\+:), allocatable, public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+lat}



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

\mbox{\Hypertarget{namespaceut__mpi__module_a06a72aa6fbff842afbdd93532235f05f}\label{namespaceut__mpi__module_a06a72aa6fbff842afbdd93532235f05f}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+lon@{xvh\+\_\+lon}}
\index{xvh\+\_\+lon@{xvh\+\_\+lon}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+lon}{xvh\_lon}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:,\+:), allocatable, public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+lon}



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


\begin{DoxyCode}
460   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable} :: xvh\_lon, xvh\_lat, xvh\_rad \textcolor{comment}{! 座標}
\end{DoxyCode}
\mbox{\Hypertarget{namespaceut__mpi__module_aeef4370123da90ecf087e79141a479f2}\label{namespaceut__mpi__module_aeef4370123da90ecf087e79141a479f2}} 
\index{ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}!xvh\+\_\+rad@{xvh\+\_\+rad}}
\index{xvh\+\_\+rad@{xvh\+\_\+rad}!ut\+\_\+mpi\+\_\+module@{ut\+\_\+mpi\+\_\+module}}
\subsubsection{\texorpdfstring{xvh\+\_\+rad}{xvh\_rad}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:,\+:), allocatable, public ut\+\_\+mpi\+\_\+module\+::xvh\+\_\+rad}



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

