BaseFrameworkComponent.F90 Source File


This file depends on

sourcefile~~baseframeworkcomponent.f90~~EfferentGraph sourcefile~baseframeworkcomponent.f90 BaseFrameworkComponent.F90 sourcefile~abstractcomponent.f90 AbstractComponent.F90 sourcefile~baseframeworkcomponent.f90->sourcefile~abstractcomponent.f90 sourcefile~abstractframeworkcomponent.f90 AbstractFrameworkComponent.F90 sourcefile~baseframeworkcomponent.f90->sourcefile~abstractframeworkcomponent.f90 sourcefile~componentspecification.f90 ComponentSpecification.F90 sourcefile~baseframeworkcomponent.f90->sourcefile~componentspecification.f90 sourcefile~compositecomponent.f90 CompositeComponent.F90 sourcefile~baseframeworkcomponent.f90->sourcefile~compositecomponent.f90 sourcefile~maplgrid.f90 MaplGrid.F90 sourcefile~baseframeworkcomponent.f90->sourcefile~maplgrid.f90 sourcefile~surrogateframeworkcomponent.f90 SurrogateFrameworkComponent.F90 sourcefile~baseframeworkcomponent.f90->sourcefile~surrogateframeworkcomponent.f90 sourcefile~abstractframeworkcomponent.f90->sourcefile~surrogateframeworkcomponent.f90 sourcefile~statespecification.f90 StateSpecification.F90 sourcefile~componentspecification.f90->sourcefile~statespecification.f90 sourcefile~compositecomponent.f90->sourcefile~abstractframeworkcomponent.f90 sourcefile~abstractcomposite.f90 AbstractComposite.F90 sourcefile~compositecomponent.f90->sourcefile~abstractcomposite.f90 sourcefile~concretecomposite.f90 ConcreteComposite.F90 sourcefile~compositecomponent.f90->sourcefile~concretecomposite.f90 sourcefile~constants.f90 Constants.F90 sourcefile~maplgrid.f90->sourcefile~constants.f90 sourcefile~errorhandling.f90 ErrorHandling.F90 sourcefile~maplgrid.f90->sourcefile~errorhandling.f90 sourcefile~keywordenforcer.f90 KeywordEnforcer.F90 sourcefile~maplgrid.f90->sourcefile~keywordenforcer.f90 sourcefile~mapl_sort.f90 MAPL_Sort.F90 sourcefile~maplgrid.f90->sourcefile~mapl_sort.f90 sourcefile~pflogger_stub.f90 pflogger_stub.F90 sourcefile~maplgrid.f90->sourcefile~pflogger_stub.f90 sourcefile~concretecomposite.f90->sourcefile~abstractframeworkcomponent.f90 sourcefile~concretecomposite.f90->sourcefile~abstractcomposite.f90 sourcefile~stringcompositemap.f90 StringCompositeMap.F90 sourcefile~concretecomposite.f90->sourcefile~stringcompositemap.f90 sourcefile~internalconstants.f90 InternalConstants.F90 sourcefile~constants.f90->sourcefile~internalconstants.f90 sourcefile~mathconstants.f90 MathConstants.F90 sourcefile~constants.f90->sourcefile~mathconstants.f90 sourcefile~physicalconstants.f90 PhysicalConstants.F90 sourcefile~constants.f90->sourcefile~physicalconstants.f90 sourcefile~mapl_throw.f90 MAPL_Throw.F90 sourcefile~errorhandling.f90->sourcefile~mapl_throw.f90 sourcefile~mapl_exceptionhandling.f90 MAPL_ExceptionHandling.F90 sourcefile~mapl_sort.f90->sourcefile~mapl_exceptionhandling.f90 sourcefile~pfl_keywordenforcer.f90 PFL_KeywordEnforcer.F90 sourcefile~pflogger_stub.f90->sourcefile~pfl_keywordenforcer.f90 sourcefile~wraparray.f90 WrapArray.F90 sourcefile~pflogger_stub.f90->sourcefile~wraparray.f90 sourcefile~statespecification.f90->sourcefile~constants.f90 sourcefile~statespecification.f90->sourcefile~errorhandling.f90 sourcefile~statespecification.f90->sourcefile~pflogger_stub.f90 sourcefile~varspecmiscmod.f90 VarSpecMiscMod.F90 sourcefile~statespecification.f90->sourcefile~varspecmiscmod.f90 sourcefile~varspectype.f90 VarSpecType.F90 sourcefile~statespecification.f90->sourcefile~varspectype.f90 sourcefile~varspecvector.f90 VarSpecVector.F90 sourcefile~statespecification.f90->sourcefile~varspecvector.f90

Files dependent on this one

sourcefile~~baseframeworkcomponent.f90~~AfferentGraph sourcefile~baseframeworkcomponent.f90 BaseFrameworkComponent.F90 sourcefile~maplgenericcomponent.f90 MaplGenericComponent.F90 sourcefile~maplgenericcomponent.f90->sourcefile~baseframeworkcomponent.f90 sourcefile~driver.f90~4 driver.F90 sourcefile~driver.f90~4->sourcefile~maplgenericcomponent.f90 sourcefile~maplgeneric.f90 MaplGeneric.F90 sourcefile~maplgeneric.f90->sourcefile~maplgenericcomponent.f90 sourcefile~test_concretecomposite.pf Test_ConcreteComposite.pf sourcefile~test_concretecomposite.pf->sourcefile~maplgenericcomponent.f90 sourcefile~mapl_generic.f90 MAPL_Generic.F90 sourcefile~mapl_generic.f90->sourcefile~maplgeneric.f90 sourcefile~comp_testing_driver.f90 Comp_Testing_Driver.F90 sourcefile~comp_testing_driver.f90->sourcefile~mapl_generic.f90 sourcefile~extdatagridcompmod.f90 ExtDataGridCompMod.F90 sourcefile~extdatagridcompmod.f90->sourcefile~mapl_generic.f90 sourcefile~extdatagridcompng.f90 ExtDataGridCompNG.F90 sourcefile~extdatagridcompng.f90->sourcefile~mapl_generic.f90 sourcefile~mapl.f90 MAPL.F90 sourcefile~mapl.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_capgridcomp.f90 MAPL_CapGridComp.F90 sourcefile~mapl_capgridcomp.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_geosatmaskmod.f90 MAPL_GeosatMaskMod.F90 sourcefile~mapl_geosatmaskmod.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_historycollection.f90 MAPL_HistoryCollection.F90 sourcefile~mapl_historycollection.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_historygridcomp.f90 MAPL_HistoryGridComp.F90 sourcefile~mapl_historygridcomp.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_orbgridcompmod.f90 MAPL_OrbGridCompMod.F90 sourcefile~mapl_orbgridcompmod.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_stationsamplermod.f90 MAPL_StationSamplerMod.F90 sourcefile~mapl_stationsamplermod.f90->sourcefile~mapl_generic.f90 sourcefile~mapl_trajectorymod.f90 MAPL_TrajectoryMod.F90 sourcefile~mapl_trajectorymod.f90->sourcefile~mapl_generic.f90

Source Code

module mapl_BaseFrameworkComponent
   use ESMF
   use mapl_SurrogateFrameworkComponent
   use mapl_AbstractFrameworkComponent
   use mapl_CompositeComponent
   use mapl_AbstractComponent
   use mapl_ComponentSpecification
   use mapl_MaplGrid
   implicit none
   private

   public :: BaseFrameworkComponent

   type, abstract, extends(CompositeComponent) :: BaseFrameworkComponent
      ! private
      class(AbstractComponent), allocatable :: component
      type(ComponentSpecification) :: component_spec
      type(MaplGrid) :: grid
   contains
      procedure :: set_component
      procedure :: get_component
   end type BaseFrameworkComponent

contains

   subroutine set_component(this, component)
      class(BaseFrameworkComponent), target, intent(inout) :: this
      class(AbstractComponent), intent(in) :: component

      this%component = component
      call this%component%set_framework(this)

   end subroutine set_component


   function get_component(this) result(component)
      class(AbstractComponent), pointer :: component
      class(BaseFrameworkComponent), target, intent(in) :: this

      component => this%component
   end function get_component

   

end module mapl_BaseFrameworkComponent