WrapperFactory.f90 Source File

This File Depends On

sourcefile~~wrapperfactory.f90~~EfferentGraph sourcefile~wrapperfactory.f90 WrapperFactory.f90 sourcefile~dimensionswrapper.f90 DimensionsWrapper.f90 sourcefile~dimensionswrapper.f90->sourcefile~wrapperfactory.f90
Help

Files Dependent On This One

sourcefile~~wrapperfactory.f90~~AfferentGraph sourcefile~wrapperfactory.f90 WrapperFactory.f90 sourcefile~wrapperfactorylist.f90 WrapperFactoryList.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist.f90 sourcefile~wrapperfactorylist_r4p_test.f90 WrapperFactoryList_R4P_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_r4p_test.f90 sourcefile~wrapperfactorylist_r8p_test.f90 WrapperFactoryList_R8P_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_r8p_test.f90 sourcefile~i8pwrapperfactory.f90 I8PWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~i4pwrapperfactory.f90 I4PWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~i4pwrapperfactory.f90 sourcefile~wrapperfactorylist_i4p_test.f90 WrapperFactoryList_I4P_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_i4p_test.f90 sourcefile~dlacwrapperfactory.f90 DLACWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~dlacwrapperfactory.f90 sourcefile~i2pwrapperfactory.f90 I2PWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~i2pwrapperfactory.f90 sourcefile~wrapperfactorylist_i1p_test.f90 WrapperFactoryList_I1P_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_i1p_test.f90 sourcefile~wrapperfactorylist_l_test.f90 WrapperFactoryList_L_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_l_test.f90 sourcefile~lwrapperfactory.f90 LWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~lwrapperfactory.f90 sourcefile~wrapperfactorylist_i8p_test.f90 WrapperFactoryList_I8P_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_i8p_test.f90 sourcefile~wrapperfactorylist_dlca_test.f90 WrapperFactoryList_DLCA_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_dlca_test.f90 sourcefile~r4pwrapperfactory.f90 R4PWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~r4pwrapperfactory.f90 sourcefile~r8pwrapperfactory.f90 R8PWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~r8pwrapperfactory.f90 sourcefile~wrapperfactorylist_i2p_test.f90 WrapperFactoryList_I2P_Test.f90 sourcefile~wrapperfactory.f90->sourcefile~wrapperfactorylist_i2p_test.f90 sourcefile~circlewrapperfactory.f90 CircleWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~circlewrapperfactory.f90 sourcefile~parameterlist.f90 ParameterList.f90 sourcefile~wrapperfactory.f90->sourcefile~parameterlist.f90 sourcefile~i1pwrapperfactory.f90 I1PWrapperFactory.f90 sourcefile~wrapperfactory.f90->sourcefile~i1pwrapperfactory.f90 sourcefile~wrapperfactorylistsingleton.f90 WrapperFactoryListSingleton.f90 sourcefile~wrapperfactorylist.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~i8pwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~i4pwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~dlacwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~i2pwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~lwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~r4pwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~r8pwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~extendwrappers.f90 ExtendWrappers.f90 sourcefile~circlewrapperfactory.f90->sourcefile~extendwrappers.f90 sourcefile~fpl.f90 FPL.f90 sourcefile~parameterlist.f90->sourcefile~fpl.f90 sourcefile~i1pwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_r4p_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_r8p_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i4p_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i1p_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_l_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i8p_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_dlca_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i2p_test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~parameterlist.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~fpl.f90 sourcefile~parameterlistiterator_test.f90 ParameterListIterator_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlistiterator_test.f90 sourcefile~fpl.f90->sourcefile~extendwrappers.f90 sourcefile~parameterlist_wrapper7d_test.f90 ParameterList_Wrapper7D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper7d_test.f90 sourcefile~parameterlist_test.f90 ParameterList_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_test.f90 sourcefile~parameterlist_wrapper4d_test.f90 ParameterList_Wrapper4D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper4d_test.f90 sourcefile~parameterlist_wrapper6d_test.f90 ParameterList_Wrapper6D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper6d_test.f90 sourcefile~parameterlist_wrapper2d_test.f90 ParameterList_Wrapper2D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper2d_test.f90 sourcefile~fortranparameterlist_example.f90 FortranParameterList_Example.f90 sourcefile~fpl.f90->sourcefile~fortranparameterlist_example.f90 sourcefile~parameterlist_wrapper0d_test.f90 ParameterList_Wrapper0D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper0d_test.f90 sourcefile~parameterlist_wrapper1d_test.f90 ParameterList_Wrapper1D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper1d_test.f90 sourcefile~parameterlist_wrapper5d_test.f90 ParameterList_Wrapper5D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper5d_test.f90 sourcefile~parameterlist_wrapper3d_test.f90 ParameterList_Wrapper3D_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlist_wrapper3d_test.f90
Help

Source Code


Source Code

module WrapperFactory

USE DimensionsWrapper

implicit none
private

    type, abstract :: WrapperFactory_t
    private

    contains
        private
        procedure(WrapperFactory_Wrap0D),              deferred :: Wrap0D
        procedure(WrapperFactory_Wrap1D),              deferred :: Wrap1D
        procedure(WrapperFactory_Wrap2D),              deferred :: Wrap2D
        procedure(WrapperFactory_Wrap3D),              deferred :: Wrap3D
        procedure(WrapperFactory_Wrap4D),              deferred :: Wrap4D
        procedure(WrapperFactory_Wrap5D),              deferred :: Wrap5D
        procedure(WrapperFactory_Wrap6D),              deferred :: Wrap6D
        procedure(WrapperFactory_Wrap7D),              deferred :: Wrap7D
        procedure(WrapperFactory_hasSameType), public, deferred :: hasSameType 
        generic, public :: Wrap =>   Wrap0D, &
                                     Wrap1D, &
                                     Wrap2D, &
                                     Wrap3D, &
                                     Wrap4D, &
                                     Wrap5D, &
                                     Wrap6D, &
                                     Wrap7D
    end type

    abstract interface
        function WrapperFactory_hasSameType(this, Value) result(hasSameType)
            import WrapperFactory_t
            class(WrapperFactory_t), intent(IN) :: this
            class(*),                intent(IN) :: Value
            logical                             :: hasSameType
        end function

        function WrapperFactory_Wrap0D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        function WrapperFactory_Wrap1D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value(:)
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        function WrapperFactory_Wrap2D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value(:,:)
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        function WrapperFactory_Wrap3D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value(:,:,:)
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        function WrapperFactory_Wrap4D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value(:,:,:,:)
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        function WrapperFactory_Wrap5D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value(:,:,:,:,:)
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        function WrapperFactory_Wrap6D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value(:,:,:,:,:,:)
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        function WrapperFactory_Wrap7D(this, Value) result(Wrapper)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(*),                                intent(IN)    :: Value(:,:,:,:,:,:,:)
            class(DimensionsWrapper_t), pointer                    :: Wrapper
        end function

        subroutine WrapperFactory_UnWrap0D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value
        end subroutine

        subroutine WrapperFactory_UnWrap1D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value(:)
        end subroutine

        subroutine WrapperFactory_UnWrap2D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value(:,:)
        end subroutine

        subroutine WrapperFactory_UnWrap3D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value(:,:,:)
        end subroutine

        subroutine WrapperFactory_UnWrap4D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value(:,:,:,:)
        end subroutine

        subroutine WrapperFactory_UnWrap5D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value(:,:,:,:,:)
        end subroutine

        subroutine WrapperFactory_UnWrap6D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value(:,:,:,:,:,:)
        end subroutine

        subroutine WrapperFactory_UnWrap7D(this, Wrapper, Value)
            import WrapperFactory_t
            import DimensionsWrapper_t
            class(WrapperFactory_t),                 intent(IN)    :: this
            class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
            class(*),                                intent(INOUT) :: Value(:,:,:,:,:,:,:)
        end subroutine

    end interface

public :: WrapperFactory_t

end module WrapperFactory

Circle.f90 CircleWrapper.f90 CircleWrapperFactory.f90 compact_real.f90 DimensionsWrapper.f90 DimensionsWrapper0D.f90 DimensionsWrapper0D_DLCA.f90 DimensionsWrapper0D_I1P.f90 DimensionsWrapper0D_I2P.f90 DimensionsWrapper0D_I4P.f90 DimensionsWrapper0D_I8P.f90 DimensionsWrapper0D_L.f90 DimensionsWrapper0D_R4P.f90 DimensionsWrapper0D_R8P.f90 DimensionsWrapper1D.f90 DimensionsWrapper1D_DLCA.f90 DimensionsWrapper1D_I1P.f90 DimensionsWrapper1D_I2P.f90 DimensionsWrapper1D_I4P.f90 DimensionsWrapper1D_I8P.f90 DimensionsWrapper1D_L.f90 DimensionsWrapper1D_R4P.f90 DimensionsWrapper1D_R8P.f90 DimensionsWrapper2D.f90 DimensionsWrapper2D_DLCA.f90 DimensionsWrapper2D_I1P.f90 DimensionsWrapper2D_I2P.f90 DimensionsWrapper2D_I4P.f90 DimensionsWrapper2D_I8P.f90 DimensionsWrapper2D_L.f90 DimensionsWrapper2D_R4P.f90 DimensionsWrapper2D_R8P.f90 DimensionsWrapper3D.f90 DimensionsWrapper3D_DLCA.f90 DimensionsWrapper3D_I1P.f90 DimensionsWrapper3D_I2P.f90 DimensionsWrapper3D_I4P.f90 DimensionsWrapper3D_I8P.f90 DimensionsWrapper3D_L.f90 DimensionsWrapper3D_R4P.f90 DimensionsWrapper3D_R8P.f90 DimensionsWrapper4D.f90 DimensionsWrapper4D_DLCA.f90 DimensionsWrapper4D_I1P.f90 DimensionsWrapper4D_I2P.f90 DimensionsWrapper4D_I4P.f90 DimensionsWrapper4D_I8P.f90 DimensionsWrapper4D_L.f90 DimensionsWrapper4D_R4P.f90 DimensionsWrapper4D_R8P.f90 DimensionsWrapper5D.f90 DimensionsWrapper5D_DLCA.f90 DimensionsWrapper5D_I1P.f90 DimensionsWrapper5D_I2P.f90 DimensionsWrapper5D_I4P.f90 DimensionsWrapper5D_I8P.f90 DimensionsWrapper5D_L.f90 DimensionsWrapper5D_R4P.f90 DimensionsWrapper5D_R8P.f90 DimensionsWrapper6D.f90 DimensionsWrapper6D_DLCA.f90 DimensionsWrapper6D_I1P.f90 DimensionsWrapper6D_I2P.f90 DimensionsWrapper6D_I4P.f90 DimensionsWrapper6D_I8P.f90 DimensionsWrapper6D_L.f90 DimensionsWrapper6D_R4P.f90 DimensionsWrapper6D_R8P.f90 DimensionsWrapper7D.f90 DimensionsWrapper7D_DLCA.f90 DimensionsWrapper7D_I1P.f90 DimensionsWrapper7D_I2P.f90 DimensionsWrapper7D_I4P.f90 DimensionsWrapper7D_I8P.f90 DimensionsWrapper7D_L.f90 DimensionsWrapper7D_R4P.f90 DimensionsWrapper7D_R8P.f90 DLACWrapperFactory.f90 ErrorMessages.f90 ExtendWrappers.f90 FortranParameterList_Example.f90 FPL.f90 FPL_utils.f90 I1PWrapperFactory.f90 I2PWrapperFactory.f90 I4PWrapperFactory.f90 I8PWrapperFactory.f90 LWrapperFactory.f90 ParameterEntry.f90 ParameterEntryDictionary.f90 ParameterList.f90 ParameterList_Test.f90 ParameterList_Wrapper0D_Test.f90 ParameterList_Wrapper1D_Test.f90 ParameterList_Wrapper2D_Test.f90 ParameterList_Wrapper3D_Test.f90 ParameterList_Wrapper4D_Test.f90 ParameterList_Wrapper5D_Test.f90 ParameterList_Wrapper6D_Test.f90 ParameterList_Wrapper7D_Test.f90 ParameterListIterator_Test.f90 ParameterRootEntry.f90 R4PWrapperFactory.f90 R8PWrapperFactory.f90 WrapperFactory.f90 WrapperFactoryList.f90 WrapperFactoryList_DLCA_Test.f90 WrapperFactoryList_I1P_Test.f90 WrapperFactoryList_I2P_Test.f90 WrapperFactoryList_I4P_Test.f90 WrapperFactoryList_I8P_Test.f90 WrapperFactoryList_L_Test.f90 WrapperFactoryList_R4P_Test.f90 WrapperFactoryList_R8P_Test.f90 WrapperFactoryListSingleton.f90