%\documentclass[14pt,dvipdfmx]{beamer}
\documentclass[14pt,dvipdfmx,handout]{beamer}
\usepackage{D6math}

\usetheme{Madrid}
\usefonttheme[onlymath]{serif}
\AtBeginShipoutFirst{\special{pdf:tounicode EUC-UCS2}}
\renewcommand{\kanjifamilydefault}{\gtdefault}

\title[dcmodel プロジェクト]
  {地球流体電脳倶楽部\\ dcmodel プロジェクトについて}

\author{竹広 真一}

%\institute[京大数理研]{京都大学数理解析研究所}
\date{2019 年 3 月 29 日}

\begin{document}

%
% Title page
%
\frame{
  \titlepage

  \vspace{-6mm}
  \begin{center}
  %   \footnotesize
  %   with 
  %   高橋 芳幸(神戸大), 
  %   杉山 耕一朗 (北大), 
  %   小高 正嗣 (北大), 
  %   石渡 正樹 (北大), 
  %   佐々木 洋平 (京大), 
  %   西澤 誠也 (理研), 
  %   石岡 圭一 (京大), 
  %   中島 健介 (九大), 
  %   林 祥介 (神戸大), 
  %   地球流体電脳倶楽部 (\url{http://www.gfd-dennou.org/})
  %   \vspace{1zh}

    % \footnotesize
    % dcmodel/davis チュートリアル ＠ 神戸大学 CPS 

  \end{center}
}
%
% Introduction 1
%
\frame{
  \frametitle{はじめに}

  \begin{itemize}[<+->]
  \item シミュレーションモデルは巨大化し複雑になってしまった
    \begin{itemize}
    \item 単純な流体計算 + 多くの物理素過程(放射・乱流過程, 雲・降水などの構成物質の相変化などなど)
    \end{itemize}

  \item ひとりで掌握するのは容易ではない
    \begin{itemize}
    \item プログラムを理解することが難しい
    \item モデルの正しさをチェックするのが難しい
      \begin{itemize}
      \item 素過程モデルとの比較検討
      \item 概念モデルを作るためのシステムの抽出
      \end{itemize}
    \end{itemize}
  \end{itemize}

  \pause
  \begin{block}{}
    $\Rightarrow$ ``モデルギャップ''問題 (Held 2005)
  \end{block}
}
%
% Introduction 2
%
\frame{
  \frametitle{はじめに}

  \begin{itemize}[<+->]
  \item この``ギャップ''を埋めるために...
    \begin{itemize}
    \item さまざまなレベルの複雑度のモデルを{\color{red} 階層的}に用い, 
      結果を比較していくことが必要
    \item 複数の数値実験を同時に円滑に行える計算環境が必要
    \end{itemize}
  \end{itemize}

  \pause
  \begin{alertblock}{dcmodel プロジェクト}
    さまざまな複雑度の階層的数値モデル群を開発・維持

    \url{http://www.gfd-dennou.org/library/dcmodel/}
  \end{alertblock}
}
%
% dcmodel のモデルの特徴1
%
\frame{
  \frametitle{dcmodel のモデルの特徴}

%  次のようなモデルの構築を目指している

    \begin{itemize}[<+->]
    \item 様々な複雑度のモデル
      \begin{itemize}
      \item 簡単なモデル(素過程モデル・概念モデル)から
        複雑なシミュレーションモデルまで
      \item 現象の理解と複雑なモデルの正当性のチェックのため
      \end{itemize}
      
    \item 共通の「型」を持ったモデル\\
      $\Rightarrow$ プログラムコードの可読性を上げる
       \begin{itemize}
       \item 共通の書式・変数名規則・入出力ルーチン・データ書式
       \item 複雑度の異なる多数のプログラムを用いた
         数値実験を同時に効率的に行うために重要
         \begin{itemize}
         \item 一つプログラムを学習 $\Rightarrow$ 他のプログラムの理解が加速
         \item 複数のモデルの数値計算結果の後処理・可視化の共通化
         \end{itemize}
       \item モデルのユーザーにとっても可読性は重要
         \begin{itemize}
         \item 元となる物理モデルとの比較確認
         \end{itemize}
       \end{itemize}

    \end{itemize}
}
%
% dcmodel のモデルの特徴2
%
\frame{
  \frametitle{dcmodel のモデルの特徴}

%  次のようなモデルの構築を目指している

    \begin{itemize}[<+->]
    \item 誰でも使えるモデル・プログラム
      \begin{itemize}
      \item ソースコードから全てインターネット上で公開
      \item 他の研究者の結果を誰でも追試できることが重要
      \end{itemize}

    \item 様々な規模の計算機で実行できるモデル
      \begin{itemize}
      \item パソコンからスーパーコンピュータまで
      \item 学生が学部・大学院教育で用いた教材を, 
        そのまま最先端の研究として用いることができる
      \end{itemize}

    \item 解説文書の整備されたモデル
      \begin{itemize}
      \item チュートリアル文書・参考書・モデル解説書を
        モデル開発と共通の形式で整備
      \item プログラムの維持管理にとっても解説文書は重要
        \begin{itemize}
        \item 元の物理モデルの確認のため
        \end{itemize}
      \end{itemize}

    \end{itemize}
}
%
% dcmodel のモデルの構成要素
%
\frame{
  \frametitle{dcmodel の構成要素}

  \begin{itemize}
  \item 入出力ライブラリ, 各種ツール
    \begin{itemize}
    \item gtool5
    \end{itemize}

  \item スペクトル変換ライブラリ
    \begin{itemize}
    \item ISPACK/spml
    \end{itemize}

  \item さまざまなモデル
    \begin{itemize}
    \item spmodel : 階層的地球流体スペクトルモデル群
    \item deepconv : 非静力学雲解像モデル
    \item DCPAM : 惑星大気大循環モデル
    \item dcrtm : 惑星大気放射伝達モデル
    \item (dcpom) : 惑星海洋モデル
    \item (dcpcm) : 惑星惑星気候モデル
    \end{itemize}

  文書開発ツール
    \begin{itemize}
    \item rdoc-f95 $\Rightarrow$ doxgen
    \end{itemize}
  \end{itemize}
}
%
% spmodel の出力例
%
\frame{
  \frametitle{spmodel の出力例}

  \begin{center}
  \begin{tabular}{cc}
    \includegraphics[width=0.35\textwidth,bb=0 0 452 327]
                    {./figures/spmodel_kdv.png}
    &                    
    \includegraphics[width=0.35\textwidth,bb=0 0 452 327]
                    {./figures/spmodel_kh.png}

    \\
    {\scriptsize
    \href{http://www.gfd-dennou.org/library/spmodel/gallery/kdv/kdv1-anim.gif}
         {KdV 方程式のソリトン解}
    }
    &
    {\scriptsize
    \href{http://www.gfd-dennou.org/library/spmodel/gallery/kh-instability/kh1-anim.gif}
         {Kelvin-Helmholtz 不安定}
    }
    \\
    \includegraphics[width=0.35\textwidth,bb=0 0 452 327]
                    {./figures/spshallow-topo-sat.png}
    &
    \includegraphics[width=0.35\textwidth,bb=0 0 752 532]
                    {./figures/spmodel_dynamo_brad.png}
    \\
    {\scriptsize
    \href{http://www.gfd-dennou.org/library/spmodel/gallery/shallow-topo/shallow_topo_linear-sphere-anim.gif}
         {回転球面上のロスビー波伝播}
    }
    &
    {\scriptsize
      回転球殻 MHD ダイナモモデル
    }
    \\
  \end{tabular}
  \end{center}
} 
%
% deepconv 計算例
%
\frame{
  \frametitle{deepconv の計算例}

  \begin{itemize}
  \item 木星の雲対流
    \begin{itemize}
    \item 上段 : 活発期, 下段 : 静穏期
    \end{itemize}
  \end{itemize}

  \vspace{-15mm}
  \includegraphics[width=1.0\textwidth]
                  {./figures/deepconv-jupiter.png}

  {\footnotesize
    \hspace*{15mm}雲混合比 \hspace*{20mm}水蒸気混合比 \hspace*{20mm} 鉛直速度}
}
%
% deepconv 計算例
%
% \frame{
%   \frametitle{deepconv の計算例}

%   \begin{itemize}
%   \item 火星極域の雲対流
%   \end{itemize}

%   \vspace{-25mm}
%   \includegraphics[width=0.3\textwidth]
%                   {./figures/deepconv-mars-H.png}
%   \includegraphics[width=0.7\textwidth]
%                   {./figures/deepconv-mars.png}
% }
%
% dcpam 計算例
%
\frame{
  \frametitle{DCPAM の計算例}

  \begin{itemize}
  \item 各地球型惑星大気の大循環計算例
    \begin{itemize}
    \item (上段:東西風, 下段:温度)
    \end{itemize}
  \end{itemize}

  {\footnotesize
  \begin{center}
    \begin{tabular}{ccc}
      火星 &  金星 & 地球 \\
      \includegraphics[width=0.3\textwidth,bb=0 0 389 295]
                      {./figures/dcpam-mars-U.png}
      &
      \includegraphics[width=0.3\textwidth,bb=0 0 381 290]
                      {./figures/dcpam-venus-U.png}
      &
      \includegraphics[width=0.3\textwidth,bb=0 0 376 295]
                      {./figures/dcpam-earth-U.png}
      \\                     
      \includegraphics[width=0.3\textwidth,bb=0 0 383 295]
                      {./figures/dcpam-mars-T.png}
      &
      \includegraphics[width=0.3\textwidth,bb=0 0 375 289]
                      {./figures/dcpam-venus-T.png}
      &
      \includegraphics[width=0.3\textwidth,bb=0 0 375 295]
                      {./figures/dcpam-earth-T.png}
    \end{tabular}
  \end{center}
  }
}
% \frame{
%   \frametitle{dcpam の計算例}

%   \begin{itemize}
%   \item 同期回転惑星の大気大循環計算例
%   \end{itemize}

%   \vspace{-5mm}
%   {\footnotesize
%   \begin{center}
%   \begin{tabular}{cc}
%     \includegraphics[width=0.5\textwidth,bb=0 0 413 293]
%                     {./figures/dcpam-syncrot-T.png}
%     &
%     \includegraphics[width=0.5\textwidth,bb=0 0 414 293]
%                     {./figures/dcpam-syncrot-P.png}
%     \\
%     表面温度  & 降水量
%   \end{tabular}
%   \end{center}
%   }
% }
%
% rdoc-f95
%
\frame{
  \frametitle{rdoc-f95}

  \begin{itemize}
  \item Fortran90/95 のドキュメンテーションツール
    \begin{itemize}
    \item ソースプログラムからモジュール, 関数, サブルーチン,  namelist 変
      数を自動解析し, マニュアルを生成
    \item ruby のドキュメンテーションツール rdoc を Fortran90/95 用に拡張
    \end{itemize}
  \end{itemize}

    \begin{center}
      \includegraphics[width=0.6\textwidth,bb=0 0 1276 771]
                      {./figures/rdoc-f95_sample.png}

      {\scriptsize rdoc-f95 で生成された dcpam のレファレンスマニュアル}
    \end{center}
}
%
% チュートリアル
%
% \frame{
%   \frametitle{チュートリアル予定}

%   \begin{itemize}
%   \item spmodel (1.5h)
%   \item DCPAM (0.5h)
%   \item deepconv (0.5h)
%   \end{itemize}
% }
\end{document}

%%% Local Variables: 
%%% mode: japanese-latex
%%% TeX-master: t
%%% End: 
