This subroutine creates the required stencil.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_stencilHeader_type), | intent(out) | :: | stencil |
stencil type to be defined |
||
character(len=*) | :: | stencilKind |
stencil kind to decide which create function to call |
subroutine tem_create_stencil( stencil, stencilKind )
! -------------------------------------------------------------------- !
!> stencil type to be defined
type( tem_stencilHeader_type), intent(out) :: stencil
!> stencil kind to decide which create function to call
character(len=*) :: stencilKind
! -------------------------------------------------------------------- !
write(logUnit(1),*) 'Creating stencil kind: '//trim(stencilKind)
select case (trim(stencilKind))
case ('d3q19')
call init( me = stencil, &
& QQN = 18, &
& QQ = 19, &
& useAll = .true., &
& nDims = 3, &
& label = 'd3q19', &
& cxDir = d3q19_cxDir )
case ('d3q13')
call init( me = stencil, &
& QQN = 12, &
& QQ = 13, &
& useAll = .true., &
& nDims = 3, &
& label = 'd3q13', &
& cxDir = d3q13_cxDir )
case ('d3q27')
call init( me = stencil, &
& QQN = 26, &
& QQ = 27, &
& useAll = .true., &
& nDims = 3, &
& label = 'd3q27', &
& cxDir = d3q27_cxDir )
case ('d3q7')
call init( me = stencil, &
& QQN = 6, &
& QQ = 7, &
& useAll = .true., &
& nDims = 3, &
& label = 'd3q7', &
& cxDir = d3q7_cxDir )
case ('d3q6', 'flekkoy')
call init( me = stencil, &
& QQN = 6, &
& QQ = 6, &
& useAll = .false., &
& nDims = 3, &
& label = 'd3q6', &
& cxDir = d3q6_cxDir )
case ('d2q9')
call init( me = stencil, &
& QQN = 8, &
& QQ = 9, &
& useAll = .true., &
& nDims = 2, &
& label = 'd2q9', &
& cxDir = d2q9_cxDir )
case ('d2q5')
call init( me = stencil, &
& QQN = 4, &
& QQ = 5, &
& useAll = .true., &
& nDims = 2, &
& label = 'd2q5', &
& cxDir = d2q5_cxDir )
case ('d1q3')
call init( me = stencil, &
& QQN = 2, &
& QQ = 3, &
& useAll = .true., &
& nDims = 1, &
& label = 'd1q3', &
& cxDir = d1q3_cxDir )
case ('default')
write(logUnit(1),*) "Stencil kind Not defined yet!!"
call tem_abort()
end select
end subroutine tem_create_stencil