next up previous contents
Next: 12.5.2 Communications Up: 12.5 Domain Decomposition Previous: 12.5 Domain Decomposition

   
12.5.1 Calculating row boundaries on processors

The number of processors is read in through namelist as variable $num\_processors$. The model domain is divided into $num\_processors$pieces with each piece containing the same number12.5 of latitude rows. Each processor is assigned the task of working on its own piece of the domain starting with latitude index jrow=jstask and ending with latitude index jrow=jetask. Each processor has its own memory window to process only those latitude rows within its own task. The starting and ending rows of each processor's task are given by


jstask = $\displaystyle nint((pn-1)*calculated\_rows) + (2-jbuf)$ (12.1)
jetask = $\displaystyle nint(pn*calculated\_rows) + (1+jbuf)$ (12.2)

where pn is the processor number ( $pn=1\cdots\;num\_processors$), the number of buffer rows ``jbuf'' is explained in Section 11.3.1, and


\begin{displaymath}calculated\_rows = float(jmt-2)/num\_processors.
\end{displaymath} (12.3)

The latitude rows for which the tracer and baroclinic equations are solved within the processor's task are controlled by the starting and stopping rows


jscomp = jstask + jbuf (12.4)
jecomp = jetask - jbuf (12.5)


next up previous contents
Next: 12.5.2 Communications Up: 12.5 Domain Decomposition Previous: 12.5 Domain Decomposition
RC Pacanowski and SM Griffies, GFDL, Jan 2000