can_connect_to.F90 Source File


This file depends on

sourcefile~~can_connect_to.f90~3~~EfferentGraph sourcefile~can_connect_to.f90~3 can_connect_to.F90 sourcefile~basicverticalgrid.f90 BasicVerticalGrid.F90 sourcefile~can_connect_to.f90~3->sourcefile~basicverticalgrid.f90 sourcefile~mirrorverticalgrid.f90 MirrorVerticalGrid.F90 sourcefile~can_connect_to.f90~3->sourcefile~mirrorverticalgrid.f90 sourcefile~modelverticalgrid.f90 ModelVerticalGrid.F90 sourcefile~can_connect_to.f90~3->sourcefile~modelverticalgrid.f90 sourcefile~errorhandling.f90 ErrorHandling.F90 sourcefile~basicverticalgrid.f90->sourcefile~errorhandling.f90 sourcefile~griddedcomponentdriver.f90 GriddedComponentDriver.F90 sourcefile~basicverticalgrid.f90->sourcefile~griddedcomponentdriver.f90 sourcefile~verticalgrid.f90 VerticalGrid.F90 sourcefile~basicverticalgrid.f90->sourcefile~verticalgrid.f90 sourcefile~mirrorverticalgrid.f90->sourcefile~errorhandling.f90 sourcefile~mirrorverticalgrid.f90->sourcefile~griddedcomponentdriver.f90 sourcefile~mirrorverticalgrid.f90->sourcefile~verticalgrid.f90 sourcefile~actualconnectionpt.f90 ActualConnectionPt.F90 sourcefile~modelverticalgrid.f90->sourcefile~actualconnectionpt.f90 sourcefile~modelverticalgrid.f90->sourcefile~errorhandling.f90 sourcefile~extensionaction.f90 ExtensionAction.F90 sourcefile~modelverticalgrid.f90->sourcefile~extensionaction.f90 sourcefile~extensionfamily.f90 ExtensionFamily.F90 sourcefile~modelverticalgrid.f90->sourcefile~extensionfamily.f90 sourcefile~fieldspec.f90~2 FieldSpec.F90 sourcefile~modelverticalgrid.f90->sourcefile~fieldspec.f90~2 sourcefile~modelverticalgrid.f90->sourcefile~griddedcomponentdriver.f90 sourcefile~multistate.f90 MultiState.F90 sourcefile~modelverticalgrid.f90->sourcefile~multistate.f90 sourcefile~stateitemextension.f90 StateItemExtension.F90 sourcefile~modelverticalgrid.f90->sourcefile~stateitemextension.f90 sourcefile~stateitemextensionptrvector.f90 StateItemExtensionPtrVector.F90 sourcefile~modelverticalgrid.f90->sourcefile~stateitemextensionptrvector.f90 sourcefile~stateitemspec.f90 StateItemSpec.F90 sourcefile~modelverticalgrid.f90->sourcefile~stateitemspec.f90 sourcefile~stateregistry.f90 StateRegistry.F90 sourcefile~modelverticalgrid.f90->sourcefile~stateregistry.f90 sourcefile~ungriddeddims.f90 UngriddedDims.F90 sourcefile~modelverticalgrid.f90->sourcefile~ungriddeddims.f90 sourcefile~verticaldimspec.f90 VerticalDimSpec.F90 sourcefile~modelverticalgrid.f90->sourcefile~verticaldimspec.f90 sourcefile~modelverticalgrid.f90->sourcefile~verticalgrid.f90 sourcefile~virtualconnectionpt.f90 VirtualConnectionPt.F90 sourcefile~modelverticalgrid.f90->sourcefile~virtualconnectionpt.f90

Source Code

#include "MAPL_ErrLog.h"
submodule (mapl3g_ModelVerticalGrid) can_connect_to_smod
   use mapl3g_BasicVerticalGrid
   use mapl3g_MirrorVerticalGrid

contains

    logical module function can_connect_to(this, src, rc)
       use mapl3g_MirrorVerticalGrid, only: MirrorVerticalGrid
       use mapl3g_BasicVerticalGrid, only: BasicVerticalGrid
       class(ModelVerticalGrid), intent(in) :: this
       class(VerticalGrid), intent(in) :: src
       integer, optional, intent(out) :: rc
       
       integer :: status
       
       if (this%same_id(src)) then
          can_connect_to = .true.
          _RETURN(_SUCCESS)
       end if
       
       select type (src)
       type is (MirrorVerticalGrid)
          can_connect_to = .true.
          _RETURN(_SUCCESS)
       type is (BasicVerticalGrid)
          can_connect_to = (this%get_num_levels() == src%get_num_levels())
          _RETURN(_SUCCESS)
       class default
          _FAIL('unsupported subclass of VerticalGrid')
       end select

        _RETURN(_SUCCESS)
    end function can_connect_to

end submodule