coupler.f90 Source File


This file depends on

sourcefile~~coupler.f90~~EfferentGraph sourcefile~coupler.f90 coupler.f90 sourcefile~sea_model.f90 sea_model.f90 sourcefile~coupler.f90->sourcefile~sea_model.f90 sourcefile~land_model.f90 land_model.f90 sourcefile~coupler.f90->sourcefile~land_model.f90 sourcefile~date.f90 date.f90 sourcefile~sea_model.f90->sourcefile~date.f90 sourcefile~input_output.f90 input_output.f90 sourcefile~sea_model.f90->sourcefile~input_output.f90 sourcefile~boundaries.f90 boundaries.f90 sourcefile~sea_model.f90->sourcefile~boundaries.f90 sourcefile~geometry.f90 geometry.f90 sourcefile~sea_model.f90->sourcefile~geometry.f90 sourcefile~mod_radcon.f90 mod_radcon.f90 sourcefile~sea_model.f90->sourcefile~mod_radcon.f90 sourcefile~physical_constants.f90 physical_constants.f90 sourcefile~sea_model.f90->sourcefile~physical_constants.f90 sourcefile~interpolation.f90 interpolation.f90 sourcefile~sea_model.f90->sourcefile~interpolation.f90 sourcefile~params.f90 params.f90 sourcefile~sea_model.f90->sourcefile~params.f90 sourcefile~auxiliaries.f90 auxiliaries.f90 sourcefile~sea_model.f90->sourcefile~auxiliaries.f90 sourcefile~land_model.f90->sourcefile~date.f90 sourcefile~land_model.f90->sourcefile~input_output.f90 sourcefile~land_model.f90->sourcefile~boundaries.f90 sourcefile~land_model.f90->sourcefile~interpolation.f90 sourcefile~land_model.f90->sourcefile~params.f90 sourcefile~land_model.f90->sourcefile~auxiliaries.f90 sourcefile~date.f90->sourcefile~params.f90 sourcefile~input_output.f90->sourcefile~date.f90 sourcefile~input_output.f90->sourcefile~geometry.f90 sourcefile~input_output.f90->sourcefile~physical_constants.f90 sourcefile~input_output.f90->sourcefile~params.f90 sourcefile~spectral.f90 spectral.f90 sourcefile~input_output.f90->sourcefile~spectral.f90 sourcefile~boundaries.f90->sourcefile~input_output.f90 sourcefile~boundaries.f90->sourcefile~physical_constants.f90 sourcefile~boundaries.f90->sourcefile~params.f90 sourcefile~boundaries.f90->sourcefile~spectral.f90 sourcefile~geometry.f90->sourcefile~physical_constants.f90 sourcefile~geometry.f90->sourcefile~params.f90 sourcefile~mod_radcon.f90->sourcefile~params.f90 sourcefile~physical_constants.f90->sourcefile~params.f90 sourcefile~interpolation.f90->sourcefile~date.f90 sourcefile~interpolation.f90->sourcefile~params.f90 sourcefile~auxiliaries.f90->sourcefile~params.f90 sourcefile~spectral.f90->sourcefile~geometry.f90 sourcefile~spectral.f90->sourcefile~physical_constants.f90 sourcefile~spectral.f90->sourcefile~params.f90 sourcefile~legendre.f90 legendre.f90 sourcefile~spectral.f90->sourcefile~legendre.f90 sourcefile~fourier.f90 fourier.f90 sourcefile~spectral.f90->sourcefile~fourier.f90 sourcefile~legendre.f90->sourcefile~geometry.f90 sourcefile~legendre.f90->sourcefile~physical_constants.f90 sourcefile~legendre.f90->sourcefile~params.f90 sourcefile~fourier.f90->sourcefile~geometry.f90 sourcefile~fourier.f90->sourcefile~params.f90

Files dependent on this one

sourcefile~~coupler.f90~~AfferentGraph sourcefile~coupler.f90 coupler.f90 sourcefile~speedy.f90 speedy.f90 sourcefile~speedy.f90->sourcefile~coupler.f90 sourcefile~initialization.f90 initialization.f90 sourcefile~speedy.f90->sourcefile~initialization.f90 sourcefile~initialization.f90->sourcefile~coupler.f90

Contents

Source Code


Source Code

!> author: Sam Hatfield, Fred Kucharski, Franco Molteni
!  date: 29/04/2019
!  Highest level interface to land and sea models.
module coupler
    implicit none

    private
    public initialize_coupler, couple_sea_land

contains
    !> Initialize both land and sea models.
    subroutine initialize_coupler
        use land_model, only: land_model_init, couple_land_atm
        use sea_model, only: sea_model_init, couple_sea_atm

        ! Initialize land model constants
        call land_model_init

        ! Initialize land model variables
        call couple_land_atm(0)

        ! Initialize sea and ice model constants
        call sea_model_init

        ! Initialize sea and ice model variables
        call couple_sea_atm(0)
    end subroutine

    !> Exchange fluxes between atmosphere and land/sea.
    subroutine couple_sea_land(day)
        use land_model, only: couple_land_atm
        use sea_model, only: couple_sea_atm

        integer, intent(in) :: day !! The current day of the model integration (starting from 0)

        call couple_land_atm(day)
        call couple_sea_atm(day)
    end subroutine
end module