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.