32 |
validity of the cube topology depends on the \file{SIZE.h} file as |
validity of the cube topology depends on the \file{SIZE.h} file as |
33 |
detailed below. The default files provided in the release configure a |
detailed below. The default files provided in the release configure a |
34 |
cubed sphere topology of six tiles, one per subdomain, each with |
cubed sphere topology of six tiles, one per subdomain, each with |
35 |
32$\times$32 grid points, all running on a single processor. Both |
32$\times$32 grid points, with all tiles running on a single processor. Both |
36 |
files are generated by Matlab scripts in |
files are generated by Matlab scripts in |
37 |
\file{utils/exch2/matlab-topology-generator}; see Section |
\file{utils/exch2/matlab-topology-generator}; see Section |
38 |
\ref{sec:topogen} \sectiontitle{Generating Topology Files for exch2} |
\ref{sec:topogen} \sectiontitle{Generating Topology Files for exch2} |
66 |
\file{tile00$n$.mitgrid} where $n$=\code{(1:6)} (one per subdomain), |
\file{tile00$n$.mitgrid} where $n$=\code{(1:6)} (one per subdomain), |
67 |
must be in the working directory when the MITgcm executable is run. |
must be in the working directory when the MITgcm executable is run. |
68 |
These files are provided in the example experiments for cubed sphere |
These files are provided in the example experiments for cubed sphere |
69 |
configurations with 32$\times$32 cube sides and are non-trivial to |
configurations with 32$\times$32 cube sides |
70 |
generate -- please contact MITgcm support if you want to generate |
-- please contact MITgcm support if you want to generate |
71 |
files for other configurations. \\ |
files for other configurations. \\ |
72 |
|
|
73 |
$\bullet$ As always when compiling MITgcm, the file \file{SIZE.h} must |
$\bullet$ As always when compiling MITgcm, the file \file{SIZE.h} must |
106 |
from the Matlab prompt (there are no parameters to pass) generates |
from the Matlab prompt (there are no parameters to pass) generates |
107 |
exch2 topology files \file{W2\_EXCH2\_TOPOLOGY.h} and |
exch2 topology files \file{W2\_EXCH2\_TOPOLOGY.h} and |
108 |
\file{w2\_e2setup.F} in the working directory and displays a figure of |
\file{w2\_e2setup.F} in the working directory and displays a figure of |
109 |
the topology via Matlab. The other m-files in the directory are |
the topology via Matlab -- figures \ref{fig:6tile}, \ref{fig:12tile}, |
110 |
|
and \ref{fig:24tile} are examples. The other m-files in the directory are |
111 |
subroutines of \file{driver.m} and should not be run ``bare'' except |
subroutines of \file{driver.m} and should not be run ``bare'' except |
112 |
for development purposes. \\ |
for development purposes. \\ |
113 |
|
|
118 |
The first three determine the size of the subdomains and |
The first three determine the size of the subdomains and |
119 |
hence the size of the overall domain. Each one determines the number |
hence the size of the overall domain. Each one determines the number |
120 |
of grid points, and therefore the resolution, along the subdomain |
of grid points, and therefore the resolution, along the subdomain |
121 |
sides in a ``great circle'' around an axis of the cube. At the time |
sides in a ``great circle'' around each the three spatial axes of the cube. At the time |
122 |
of this writing MITgcm requires these three parameters to be equal, |
of this writing MITgcm requires these three parameters to be equal, |
123 |
but they provide for future releases to accomodate different |
but they provide for future releases to accomodate different |
124 |
resolutions around the axes to allow (for example) greater resolution |
resolutions around the axes to allow (for example) greater resolution |
125 |
around the equator.\\ |
around the equator.\\ |
126 |
|
|
127 |
The parameters \code{tnx} and \code{tny} determine the dimensions of |
The parameters \code{tnx} and \code{tny} determine the width and height of |
128 |
the tiles into which the subdomains are decomposed, and must evenly |
the tiles into which the subdomains are decomposed, and must evenly |
129 |
divide the integer assigned to \code{nr}, \code{nb} and \code{ng}. |
divide the integer assigned to \code{nr}, \code{nb} and \code{ng}. |
130 |
The result is a rectangular tiling of the subdomain. Figure |
The result is a rectangular tiling of the subdomain. Figure |
140 |
|
|
141 |
\caption{Plot of a cubed sphere topology with a 32$\times$192 domain |
\caption{Plot of a cubed sphere topology with a 32$\times$192 domain |
142 |
divided into six 32$\times$32 subdomains, each of which is divided |
divided into six 32$\times$32 subdomains, each of which is divided |
143 |
into four tiles (\code{tnx=16, tny=16}) for a total of twenty-four |
into four tiles of width \code{tnx=16} and height \code{tny=16} for a |
144 |
tiles. } \label{fig:24tile} |
total of twenty-four tiles. The colored borders of the subdomains |
145 |
|
represent the parameters \code{nr} (red), \code{nb} (blue), and |
146 |
|
\code{ng} (green). } \label{fig:24tile} |
147 |
\end{figure} |
\end{figure} |
148 |
|
|
149 |
\begin{figure} |
\begin{figure} |
290 |
tile layout to allow global data files that are tile-layout-neutral |
tile layout to allow global data files that are tile-layout-neutral |
291 |
and have no bearing on the internal storage of the arrays. The tiles |
and have no bearing on the internal storage of the arrays. The tiles |
292 |
are stored internally in a range from \code{(1:\varlink{bi}{bi})} the |
are stored internally in a range from \code{(1:\varlink{bi}{bi})} the |
293 |
$x$ axis, and the $y$ axis variable \varlink{bj}{bj} generally is |
$x$ axis, and the $y$ axis variable \varlink{bj}{bj} is assumed to |
294 |
ignored within the package. \\ |
equal \code{1} throughout the package. \\ |
295 |
|
|
296 |
\subsubsection{Arrays Indexed to Tile Number} |
\subsubsection{Arrays Indexed to Tile Number} |
297 |
|
|
304 |
each tile. At present for each tile \texttt{exch2\_tnx=sNx} and |
each tile. At present for each tile \texttt{exch2\_tnx=sNx} and |
305 |
\texttt{exch2\_tny=sNy}, as assigned in \file{SIZE.h} and described in |
\texttt{exch2\_tny=sNy}, as assigned in \file{SIZE.h} and described in |
306 |
section \ref{sec:exch2mpi} \sectiontitle{exch2, SIZE.h, and |
section \ref{sec:exch2mpi} \sectiontitle{exch2, SIZE.h, and |
307 |
multiprocessing}. Future releases of MITgcm are to allow varying tile |
multiprocessing}. Future releases of MITgcm may allow varying tile |
308 |
sizes. \\ |
sizes. \\ |
309 |
|
|
310 |
The location of the tiles' Cartesian origin within a subdomain are |
The location of the tiles' Cartesian origin within a subdomain are |