This version couples model components representing atmosphere, ocean, land and sea ice on independent grids. Each model component is represented by a data type giving the instantaneous model state.
The component models are coupled to allow implicit vertical diffusion of heat and moisture at the interfaces of the atmosphere, land, and ice models. As a result, the atmosphere, land, and ice models all use the same time step. The atmospheric model has been separated into down and up calls that correspond to the down and up sweeps of the standard tridiagonal elimination.
The ocean interface uses explicit mixing. Fluxes to and from the ocean must be passed through the ice model. This includes atmospheric fluxes as well as fluxes from the land to the ocean (runoff).
This program contains the model's main time loop. Each iteration of the main time loop is one coupled (slow) time step. Within this slow time step loop is a fast time step loop, using the atmospheric time step, where the tridiagonal vertical diffusion equations are solved. Exchange between sea ice and ocean occurs once every slow timestep.
MAIN PROGRAM EXAMPLE
--------------------
DO slow time steps (ocean)
call flux_ocean_to_ice
call ICE_SLOW_UP
DO fast time steps (atmos)
call flux_calculation
call ATMOS_DOWN
call flux_down_from_atmos
call LAND_FAST
call ICE_FAST
call flux_up_to_atmos
call ATMOS_UP
END DO
call ICE_SLOW_DN
call flux_ice_to_ocean
call OCEAN
END DO
atmos_model_mod
ice_model_mod
land_model_mod
ocean_model_mod
flux_exchange_mod
diag_manager_mod
time_manager_mod
utilities_mod
mpp_mod (only for timing calls: may be eliminated)
This is a main program. There are no callable interfaces.
A namelist interface called &coupler_nml should reside in file input.nml. See the details below.
For compatibility with previous versions the namelist input &coupler_nml may also reside in file coupler.res.