I8PWrapperFactory.f90 Source File

This File Depends On

sourcefile~~i8pwrapperfactory.f90~~EfferentGraph sourcefile~i8pwrapperfactory.f90 I8PWrapperFactory.f90 sourcefile~dimensionswrapper.f90 DimensionsWrapper.f90 sourcefile~dimensionswrapper.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~wrapperfactory.f90 WrapperFactory.f90 sourcefile~dimensionswrapper.f90->sourcefile~wrapperfactory.f90 sourcefile~dimensionswrapper0d.f90 DimensionsWrapper0D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper0d.f90 sourcefile~dimensionswrapper2d.f90 DimensionsWrapper2D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper2d.f90 sourcefile~dimensionswrapper4d.f90 DimensionsWrapper4D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper4d.f90 sourcefile~dimensionswrapper5d.f90 DimensionsWrapper5D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper5d.f90 sourcefile~dimensionswrapper6d.f90 DimensionsWrapper6D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper6d.f90 sourcefile~dimensionswrapper3d.f90 DimensionsWrapper3D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper3d.f90 sourcefile~dimensionswrapper1d.f90 DimensionsWrapper1D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper1d.f90 sourcefile~dimensionswrapper7d.f90 DimensionsWrapper7D.f90 sourcefile~dimensionswrapper.f90->sourcefile~dimensionswrapper7d.f90 sourcefile~dimensionswrapper0d_i8p.f90 DimensionsWrapper0D_I8P.f90 sourcefile~dimensionswrapper0d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper2d_i8p.f90 DimensionsWrapper2D_I8P.f90 sourcefile~dimensionswrapper2d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~wrapperfactory.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper4d_i8p.f90 DimensionsWrapper4D_I8P.f90 sourcefile~dimensionswrapper4d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper5d_i8p.f90 DimensionsWrapper5D_I8P.f90 sourcefile~dimensionswrapper5d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper6d_i8p.f90 DimensionsWrapper6D_I8P.f90 sourcefile~dimensionswrapper6d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper3d_i8p.f90 DimensionsWrapper3D_I8P.f90 sourcefile~dimensionswrapper3d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper1d_i8p.f90 DimensionsWrapper1D_I8P.f90 sourcefile~dimensionswrapper1d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper7d_i8p.f90 DimensionsWrapper7D_I8P.f90 sourcefile~dimensionswrapper7d_i8p.f90->sourcefile~i8pwrapperfactory.f90 sourcefile~dimensionswrapper0d.f90->sourcefile~dimensionswrapper0d_i8p.f90 sourcefile~errormessages.f90 ErrorMessages.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper0d_i8p.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper2d_i8p.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper4d_i8p.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper5d_i8p.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper6d_i8p.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper3d_i8p.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper1d_i8p.f90 sourcefile~errormessages.f90->sourcefile~dimensionswrapper7d_i8p.f90 sourcefile~dimensionswrapper2d.f90->sourcefile~dimensionswrapper2d_i8p.f90 sourcefile~dimensionswrapper4d.f90->sourcefile~dimensionswrapper4d_i8p.f90 sourcefile~dimensionswrapper5d.f90->sourcefile~dimensionswrapper5d_i8p.f90 sourcefile~dimensionswrapper6d.f90->sourcefile~dimensionswrapper6d_i8p.f90 sourcefile~dimensionswrapper3d.f90->sourcefile~dimensionswrapper3d_i8p.f90 sourcefile~dimensionswrapper1d.f90->sourcefile~dimensionswrapper1d_i8p.f90 sourcefile~dimensionswrapper7d.f90->sourcefile~dimensionswrapper7d_i8p.f90
Help

Files Dependent On This One

sourcefile~~i8pwrapperfactory.f90~~AfferentGraph sourcefile~i8pwrapperfactory.f90 I8PWrapperFactory.f90 sourcefile~wrapperfactorylistsingleton.f90 WrapperFactoryListSingleton.f90 sourcefile~i8pwrapperfactory.f90->sourcefile~wrapperfactorylistsingleton.f90 sourcefile~wrapperfactorylist_l_test.f90 WrapperFactoryList_L_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_l_test.f90 sourcefile~wrapperfactorylist_r8p_test.f90 WrapperFactoryList_R8P_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_r8p_test.f90 sourcefile~wrapperfactorylist_i4p_test.f90 WrapperFactoryList_I4P_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i4p_test.f90 sourcefile~wrapperfactorylist_dlca_test.f90 WrapperFactoryList_DLCA_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_dlca_test.f90 sourcefile~wrapperfactorylist_i2p_test.f90 WrapperFactoryList_I2P_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i2p_test.f90 sourcefile~fpl.f90 FPL.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~fpl.f90 sourcefile~wrapperfactorylist_i1p_test.f90 WrapperFactoryList_I1P_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i1p_test.f90 sourcefile~wrapperfactorylist_i8p_test.f90 WrapperFactoryList_I8P_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_i8p_test.f90 sourcefile~wrapperfactorylist_r4p_test.f90 WrapperFactoryList_R4P_Test.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~wrapperfactorylist_r4p_test.f90 sourcefile~parameterlist.f90 ParameterList.f90 sourcefile~wrapperfactorylistsingleton.f90->sourcefile~parameterlist.f90 sourcefile~parameterlistiterator_test.f90 ParameterListIterator_Test.f90 sourcefile~fpl.f90->sourcefile~parameterlistiterator_test.f90 sourcefile~extendwrappers.f90 ExtendWrappers.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 sourcefile~parameterlist.f90->sourcefile~fpl.f90
Help

Source Code


Source Code

!-----------------------------------------------------------------
! FPL (Fortran Parameter List)
! Copyright (c) 2015 Santiago Badia, Alberto F. Martín, 
! Javier Principe and Víctor Sande.
! All rights reserved.
!
! This library is free software; you can redistribute it and/or
! modify it under the terms of the GNU Lesser General Public
! License as published by the Free Software Foundation; either
! version 3.0 of the License, or (at your option) any later version.
!
! This library is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
! Lesser General Public License for more details.
!
! You should have received a copy of the GNU Lesser General Public
! License along with this library.
!-----------------------------------------------------------------

module I8PWrapperFactory

USE WrapperFactory
USE PENF, only: I1P, I8P
USE DimensionsWrapper
USE DimensionsWrapper0D_I8P
USE DimensionsWrapper1D_I8P
USE DimensionsWrapper2D_I8P
USE DimensionsWrapper3D_I8P
USE DimensionsWrapper4D_I8P
USE DimensionsWrapper5D_I8P
USE DimensionsWrapper6D_I8P
USE DimensionsWrapper7D_I8P

implicit none
private

    type, extends(WrapperFactory_t) :: I8PWrapperFactory_t
    private

    contains
        procedure         :: Wrap0D      => I8PWrapperFactory_Wrap0D
        procedure         :: Wrap1D      => I8PWrapperFactory_Wrap1D
        procedure         :: Wrap2D      => I8PWrapperFactory_Wrap2D
        procedure         :: Wrap3D      => I8PWrapperFactory_Wrap3D
        procedure         :: Wrap4D      => I8PWrapperFactory_Wrap4D
        procedure         :: Wrap5D      => I8PWrapperFactory_Wrap5D
        procedure         :: Wrap6D      => I8PWrapperFactory_Wrap6D
        procedure         :: Wrap7D      => I8PWrapperFactory_Wrap7D
        procedure         :: UnWrap0D    => I8PWrapperFactory_UnWrap0D
        procedure         :: UnWrap1D    => I8PWrapperFactory_UnWrap1D
        procedure         :: UnWrap2D    => I8PWrapperFactory_UnWrap2D
        procedure         :: UnWrap3D    => I8PWrapperFactory_UnWrap3D
        procedure         :: UnWrap4D    => I8PWrapperFactory_UnWrap4D
        procedure         :: UnWrap5D    => I8PWrapperFactory_UnWrap5D
        procedure         :: UnWrap6D    => I8PWrapperFactory_UnWrap6D
        procedure         :: UnWrap7D    => I8PWrapperFactory_UnWrap7D
        procedure, public :: hasSameType => I8PWrapperFactory_hasSameType
    end type

    type(I8PWrapperFactory_t), public :: WrapperFactoryI8P

contains

    function I8PWrapperFactory_hasSameType(this, Value) result(hasSameType)
    !-----------------------------------------------------------------
    !< Check if Value type agrees with wrapper type
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t), intent(IN) :: this
        class(*),                   intent(IN) :: Value
        logical                                :: hasSameType
    !-----------------------------------------------------------------
        hasSameType = .false.
        select type(Value)
            type is (integer(I8P))
                hasSameType = .true.
        end select
    end function I8PWrapperFactory_hasSameType


    function I8PWrapperFactory_Wrap0D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 0D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value)) then
            allocate(DimensionsWrapper0D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=0_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper0D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap0D


    function I8PWrapperFactory_Wrap1D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 1D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value(1:)
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value(1))) then
            allocate(DimensionsWrapper1D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=1_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper1D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap1D


    function I8PWrapperFactory_Wrap2D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 2D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value(1:,1:)
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value(1,1))) then
            allocate(DimensionsWrapper2D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=2_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper2D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap2D


    function I8PWrapperFactory_Wrap3D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 3D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value(1:,1:,1:)
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value(1,1,1))) then
            allocate(DimensionsWrapper3D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=3_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper3D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap3D


    function I8PWrapperFactory_Wrap4D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 4D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value(1:,1:,1:,1:)
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value(1,1,1,1))) then
            allocate(DimensionsWrapper4D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=4_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper4D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap4D


    function I8PWrapperFactory_Wrap5D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 5D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value(1:,1:,1:,1:,1:)
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value(1,1,1,1,1))) then
            allocate(DimensionsWrapper5D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=5_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper5D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap5D


    function I8PWrapperFactory_Wrap6D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 6D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value(1:,1:,1:,1:,1:,1:)
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value(1,1,1,1,1,1))) then
            allocate(DimensionsWrapper6D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=6_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper6D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap6D


    function I8PWrapperFactory_Wrap7D(this, Value) result(Wrapper)
    !-----------------------------------------------------------------
    !< Create I8P 7D Wrapper
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(*),                                intent(IN)    :: Value(1:,1:,1:,1:,1:,1:,1:)
        class(DimensionsWrapper_t), pointer                    :: Wrapper
    !-----------------------------------------------------------------
        if(this%hasSameType(Value(1,1,1,1,1,1,1))) then
            allocate(DimensionsWrapper7D_I8P_t::Wrapper)
            call Wrapper%SetDimensions(Dimensions=7_I1P)
            select type (Wrapper)
                type is(DimensionsWrapper7D_I8P_t)
                    call Wrapper%Set(Value=Value)
            end select
        endif
    end function I8PWrapperFactory_Wrap7D


    subroutine I8PWrapperFactory_UnWrap0D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 0D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper0D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine


    subroutine I8PWrapperFactory_UnWrap1D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 1D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value(:)
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper1D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine


    subroutine I8PWrapperFactory_UnWrap2D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 2D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value(:,:)
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper2D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine


    subroutine I8PWrapperFactory_UnWrap3D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 3D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value(:,:,:)
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper3D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine


    subroutine I8PWrapperFactory_UnWrap4D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 4D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value(:,:,:,:)
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper4D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine


    subroutine I8PWrapperFactory_UnWrap5D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 5D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value(:,:,:,:,:)
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper5D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine


    subroutine I8PWrapperFactory_UnWrap6D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 6D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value(:,:,:,:,:,:)
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper6D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine


    subroutine I8PWrapperFactory_UnWrap7D(this, Wrapper, Value)
    !-----------------------------------------------------------------
    !< Return the I8P 7D Wrapped Value
    !-----------------------------------------------------------------
        class(I8PWrapperFactory_t),              intent(IN)    :: this
        class(DimensionsWrapper_t), pointer,     intent(IN)    :: Wrapper
        class(*),                                intent(INOUT) :: Value(:,:,:,:,:,:,:)
    !-----------------------------------------------------------------
        select type (Wrapper)
            type is(DimensionsWrapper7D_I8P_t)
                call Wrapper%Get(Value = Value)
        end select
    end subroutine

end module I8PWrapperFactory

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