module atm_comp_mct

  ! !USES:

  use mct_mod
  use esmf
  use seq_cdata_mod
  use seq_infodata_mod

  !
  ! !PUBLIC TYPES:
  implicit none
  save
  private ! except

  !--------------------------------------------------------------------------
  ! Public interfaces
  !--------------------------------------------------------------------------

  public :: atm_init_mct
  public :: atm_run_mct
  public :: atm_final_mct

  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CONTAINS
  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  !===============================================================================
  !BOP ===========================================================================
  !
  ! !IROUTINE: atm_init_mct
  !
  ! !DESCRIPTION:
  !     stub atm model init
  !
  ! !REVISION HISTORY:
  !
  ! !INTERFACE: ------------------------------------------------------------------

  subroutine atm_init_mct( EClock, cdata, x2d, d2x, NLFilename )

    ! !INPUT/OUTPUT PARAMETERS:

    type(ESMF_Clock)            , intent(inout) :: EClock
    type(seq_cdata)             , intent(inout) :: cdata
    type(mct_aVect)             , intent(inout) :: x2d, d2x
    character(len=*), optional  , intent(in)    :: NLFilename

    !EOP
    !-------------------------------------------------------------------------------

    call seq_infodata_PutData( cdata%infodata, atm_present=.false.)
    call seq_infodata_PutData( cdata%infodata, atm_prognostic=.false.)

  end subroutine atm_init_mct

  !===============================================================================
  !BOP ===========================================================================
  !
  ! !IROUTINE: atm_run_mct
  !
  ! !DESCRIPTION:
  !     stub atm model run
  !
  ! !REVISION HISTORY:
  !
  ! !INTERFACE: ------------------------------------------------------------------

  subroutine atm_run_mct( EClock, cdata, x2d, d2x)

    implicit none

    ! !INPUT/OUTPUT PARAMETERS:

    type(ESMF_Clock)            ,intent(inout) :: EClock
    type(seq_cdata)             ,intent(inout) :: cdata
    type(mct_aVect)             ,intent(inout) :: x2d
    type(mct_aVect)             ,intent(inout) :: d2x

    !EOP
    !-------------------------------------------------------------------------------

  end subroutine atm_run_mct

  !===============================================================================
  !BOP ===========================================================================
  !
  ! !IROUTINE: atm_final_mct
  !
  ! !DESCRIPTION:
  !     stub atm model finalize
  !
  ! !REVISION HISTORY:
  !
  ! !INTERFACE: ------------------------------------------------------------------
  !
  subroutine atm_final_mct(EClock, cdata, x2d, d2x)

    implicit none

    ! !INPUT/OUTPUT PARAMETERS:

    type(ESMF_Clock)            ,intent(inout) :: EClock     ! clock
    type(seq_cdata)             ,intent(inout) :: cdata
    type(mct_aVect)             ,intent(inout) :: x2d        ! driver -> dead
    type(mct_aVect)             ,intent(inout) :: d2x        ! dead   -> driver

    !EOP
    !-------------------------------------------------------------------------------

  end subroutine atm_final_mct

  !===============================================================================

end module atm_comp_mct
