In this section, the general case will be considered where the atmosphere is assumed to be a GCM with domain and resolution differing from that of MOM and two-way coupling between MOM and the atmosphere model will be allowed. Option coupled configures MOM for this general case and the test case prototype is described in Sections 3.2 and 3.3 as CASE=3.
A flowchart of driver19.4 is given in Figure 19.2. It begins by calling subroutine setocn19.5 to perform initializations for mom19.6. Included in the list are such things as initializing variables, reading namelists to over-ride defaults, setting up the grid, topography, initial conditions, region masks, etc. In short, everything that needs to be done only once per model execution. Following this, a call is made to subroutine setatm19.7 which completes whatever setup is required by atmos19.8.
At this point, the integration is ready to begin. Integration time is divided into a number of equal length time segments19.9 which determine the coupling period. In practice, this interval should always be chosen short enough to adequately resolve time scales of coupled interaction. Typically this value would be one day19.10. Within the segment loop, atmos and mom are alternately integrated for each time segment while holding surface boundary conditions fixed. Note that this may require multiple calls to each model. In Figure 19.2, the loop variable ntspas stands for the number of time steps per atmosphere segment and the loop variable ntspos stands for the number of time steps per ocean segment. Products of each atmosphere segment include surface boundary conditions19.11 for the ocean averaged over that segment. These are held fixed and applied to mom while it integrates over the same segment. Products of integrating mom include for the atmosphere which are also averaged over this segment. Subsequently, they are held fixed and applied to atmos on the following segment. This process is represented schematically as a function of time in Figure 19.1 and continues until all time segments are completed. Using asynchronous time segments19.12 is possible with a small code modification but this is left to the researcher.
![]() |
In MOM and in the descriptions that follow, index j refers to any variable dimensioned by the number of rows in the memory window and index jrow refers to any variable dimensioned by the total number of latitude rows. They are related by an offset jrow = j + joff which indicates how far the memory window has moved northward. Refer to Section 14.2 and also 11.3.2 for a more complete description.