10#include "scaleFElib.h"
37 character(len=H_SHORT) :: name
38 logical,
private :: is_activated = .false.
39 integer :: tm_process_id
42 procedure(modelcomponentproc_calc_tendency),
deferred,
public :: calc_tendency
43 procedure(modelcomponentproc_update),
deferred,
public :: update
44 procedure(modelcomponentproc_finalize),
deferred,
public :: finalize
46 procedure,
public :: modelcomponentproc_init
47 procedure,
public :: isactivated => modelcomponentproc_isactivated
60 subroutine modelcomponentproc_calc_tendency( this, model_mesh, prgvars_list, trcvars_list, auxvars_list, forcing_list, is_update )
70 logical,
intent(in) :: is_update
71 end subroutine modelcomponentproc_calc_tendency
73 subroutine modelcomponentproc_update( this, model_mesh, prgvars_list, trcvars_list, auxvars_list, forcing_list, is_update )
83 logical,
intent(in) :: is_update
84 end subroutine modelcomponentproc_update
86 subroutine modelcomponentproc_finalize( this )
89 end subroutine modelcomponentproc_finalize
109 subroutine modelcomponentproc_init( this, name, is_activated )
113 character(len=*),
intent(in) :: name
114 logical,
intent(in) :: is_activated
118 this%is_activated = is_activated
121 end subroutine modelcomponentproc_init
124 function modelcomponentproc_isactivated( this )
result( is_activated )
128 logical :: is_activated
131 is_activated = this%is_activated
133 end function modelcomponentproc_isactivated
135end module scale_model_component_proc
FElib / model framework / physics process.
FElib / model framework / mesh manager (base)
FElib / model framework / variable manager.