11#include "scaleFElib.h"
40 procedure,
public :: evaluate_activation => coupler_evaluate_activation
41 procedure,
public :: setup_vars => coupler_setup_vars
42 procedure,
public :: calc_tendency => coupler_calc_tendency
43 procedure,
public :: update => coupler_update
44 procedure,
public :: finalize => coupler_finalize
56 subroutine coupler_evaluate_activation( this, &
65 log_info(
'CouplerComponent_setup',*)
'Check whether the coupler component is needed'
67 if ( ocn_comp%IsActivated() )
then
72 call this%ModelComponent_Init(
'COUPLER', is_needed )
74 end subroutine coupler_evaluate_activation
77 subroutine coupler_setup_vars( this, &
84 logical :: ACTIVATE_FLAG
89 call prof_rapstart(
'Coupler_setup_vars', 1)
90 call atm_mesh%GetMesh2D( atm_mesh2d )
91 call ocn_mesh%GetMesh2D( ocn_mesh2d )
93 call this%vars%Init( atm_mesh, atm_mesh2d, ocn_mesh2d )
94 call prof_rapend(
'Coupler_setup_vars', 1)
96 end subroutine coupler_setup_vars
99 subroutine coupler_finalize(this)
102 log_info(
'CouplerComponent_finalize',*)
103 if ( .not. this%IsActivated() )
return
105 call this%vars%Final()
107 end subroutine coupler_finalize
112 subroutine coupler_calc_tendency( this, force )
114 logical,
intent(in) :: force
117 end subroutine coupler_calc_tendency
119 subroutine coupler_update( this )
123 end subroutine coupler_update
subroutine coupler_setup(this)
Initialize an object to manage coupler component.
module Coupler / Variables
module FElib / Mesh / Base 2D
module FElib / Mesh / Base 3D
FElib / model framework / model component.
Derived type to manage coupler component.
Derived type to manage variables with coupler component.
Derived type to manage a computational mesh (base type for 2D domain)
Derived type to manage a computational mesh (base type for 3D domain)