next up previous contents
Next: 3.2 Category Up: 3 Data Structures Previous: 3 Data Structures   Contents

3.1 Horizontal

The horizontal computational grid is decomposed into two dimensions for efficiency in parallelization. The global horizontal domain of dimensions $imt_{global} \times
jmt_{global}$ (for example, the gx1 grid has $imt_{global} = 320$ longitude points and $jmt_{global} = 384$ latitude points) is divided into integral $NX$ longitude by $NY$ latitude rectangular subdomains of dimensions ( $imt_{local} = imt_{global}/NX +
2n_{ghost} + 1$) $\times$ ( $jmt_{local} = jmt_{global}/NY + 2n_{ghost} + 1 $), where $imt_{global}/NX$, $jmt_{global}/NY$ must be integers (see module $ice\_domain$). Each subdomain has a physical portion indexed as $[ilo:ihi,jlo:jhi]$ with $n_{ghost}$ boundary cells outside. Periodic boundary conditions are applied, with boundary routines performing communications between subdomains when running parallel. Global scatter and gather routines distribute information from the global domain to the subdomains and back, respectively (see the ``bound'' routines in module $ice\_grid$).

The thermodynamic calculations involve one grid point at a time (see module $ice\_therm\_driver$) so that a purely thermodynamic model integration is bit-for-bit independent of the domain decompostion (i.e. the exact values of $NX,NY$), while the dynamic calculation depends bit-for-bit upon domain boundary conditions, and therefore on the exact values of $NX$ and $NY$. The sea ice model climate is not sensitive to the precise domain decomposition.

The actual source code uses $NPROC\_X$ and $NPROC\_Y$ for $NX$ and $NY$ respectively, referring to the number of processors in the x direction and in the y direction (these parameters are set by a pre-compiler; see the CSIM User's Guide Version 4). The module $ice\_domain$ defines the local subdomain dimensions and their beginning/ending indices. Module $ice\_init$ computes and assigns the subdomain processor numbers. The module $ice\_model\_size$ assigns the global domain values.

The module $ice\_coupling$ handles the 'unpacking' and 'packing' of the data horizontally after and before exchange with the coupler. This involves excluding latitude bands around the equator that have no sea ice present. Information on the number of latitude bands of data for each hemisphere (i.e. the number of latitude bands of actual hemispheric sea ice but with sufficient equatorwards bands to allow for ice formation along ice edge as well) is included in the data exchange header. As the areas where new ice formation will occur are known to the coupler (based on the freeze/melt potential received from the ocean model), the coupler is able to determine the precise latitude limits. Regions with no ice in the unpacked fields are simply filled with zeros after being received from the coupler.


next up previous contents
Next: 3.2 Category Up: 3 Data Structures Previous: 3 Data Structures   Contents
csm@ucar.edu