Message passing to and from the coupler
REVISION HISTORY:
author: Elizabeth C. Hunke, LANLINTERFACE:
module ice_couplingUSES:
use ice_calendar
use ice_model_size
use ice_prescribed
use shr_sys_mod, only : shr_sys_flush, shr_sys_abort
INTERFACE:
subroutine init_cplDESCRIPTION:
Initializes message passing between ice and coupler
REVISION HISTORY:
author: Elizabeth C. Hunke, LANLUSES:
use ice_domain
use ice_constants
use ice_mpi_internal
use ice_grid
use ice_calendar
use ice_history, only : runtype
INPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine from_couplerDESCRIPTION:
Reads input data from coupler to sea ice model
REVISION HISTORY:
author: Elizabeth C. Hunke, LANLUSES:
use ice_domain
use ice_constants
use ice_flux
use ice_timers
use ice_mpi_internal
use ice_diagnostics
use ice_grid
use ice_calendar
use ice_state
use ice_prnpnt
INPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine to_couplerDESCRIPTION:
Sea ice model to coupler
REVISION HISTORY:
author: Elizabeth C. Hunke, LANLUSES:
use ice_model_size
use ice_domain
use ice_constants
use ice_flux
use ice_timers
use ice_mpi_internal
use ice_albedo
use ice_diagnostics
use ice_grid
use ice_calendar
use ice_state
use ice_history, only : sabs
use ice_prnpnt
use ice_prescribed
use ice_ocean
INPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine exit_couplerDESCRIPTION:
Exit from coupled/MPI environment
REVISION HISTORY:
author: Elizabeth C. Hunke, LANLUSES:
use ice_kinds_mod
use ice_model_size
use ice_domain
INPUT/OUTPUT PARAMETERS:
INTERFACE:
subroutine mpi_coupled (in_model_name,
& cpl_task, model_task, model_comm)
DESCRIPTION:
This routine queries all the components of the full coupled
system and sets up proper communicators and task ids for each
component of the coupled system
This routine should be called after mpi-init, but before
setting up any internal mpi setups (since these will require
the internal communicators returned by this routine)
Code originally based on POP routine
REVISION HISTORY:
author: Elizabeth C. Hunke, LANLUSES:
include "mpif.h" ! MPI library definitionsINPUT/OUTPUT PARAMETERS:
character (3), intent(in) :: in_model_name
! 3-letter identifier (atm, lnd, ocn, ice, cpl)
! for the model calling this routine
integer, intent(out) ::
& cpl_task ! master task of coupler
&, model_task ! master task of model (in MPI_COMM_WORLD)
&, model_comm ! communicator for internal model comms