run_import_couplers.F90 Source File


This file depends on

sourcefile~~run_import_couplers.f90~~EfferentGraph sourcefile~run_import_couplers.f90 run_import_couplers.F90 sourcefile~couplermetacomponent.f90 CouplerMetaComponent.F90 sourcefile~run_import_couplers.f90->sourcefile~couplermetacomponent.f90 sourcefile~errorhandling.f90 ErrorHandling.F90 sourcefile~run_import_couplers.f90->sourcefile~errorhandling.f90 sourcefile~griddedcomponentdriver.f90 GriddedComponentDriver.F90 sourcefile~run_import_couplers.f90->sourcefile~griddedcomponentdriver.f90 sourcefile~methodphasesmap.f90 MethodPhasesMap.F90 sourcefile~run_import_couplers.f90->sourcefile~methodphasesmap.f90 sourcefile~outermetacomponent.f90 OuterMetaComponent.F90 sourcefile~run_import_couplers.f90->sourcefile~outermetacomponent.f90

Source Code

#include "MAPL_ErrLog.h"

submodule(mapl3g_GriddedComponentDriver) run_import_couplers_smod
   use :: mapl_ErrorHandling
   use :: mapl3g_OuterMetaComponent
   use :: mapl3g_MethodPhasesMapUtils
   use mapl3g_CouplerMetaComponent, only: GENERIC_COUPLER_INVALIDATE, GENERIC_COUPLER_UPDATE
   implicit none

contains

   recursive module subroutine run_import_couplers(this, rc)
      class(GriddedComponentDriver), intent(inout) :: this
      integer, optional, intent(out) :: rc

      integer :: status
      type(ComponentDriverVectorIterator) :: iter
      class(ComponentDriver), pointer :: driver

      associate (e => this%import_couplers%ftn_end() )
        iter = this%import_couplers%ftn_begin()
        do while (iter /= e)
           call iter%next()
           driver => iter%of()
           call driver%run(phase_idx=GENERIC_COUPLER_UPDATE, _RC)
        end do
      end associate

      _RETURN(_SUCCESS)
   end subroutine run_import_couplers

end submodule run_import_couplers_smod