load gauss pulse variables to set initial condition
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(flu_State) | :: | conf |
lua state type |
|||
integer, | intent(in) | :: | thandle |
aotus parent handle |
||
type(ic_gausspulse_type), | intent(out) | :: | me |
Global gauss pulse data type |
subroutine load_ic_gausspulse(conf, thandle, me)
! ---------------------------------------------------------------------------
!> lua state type
type(flu_State) :: conf
!> aotus parent handle
integer, intent(in) :: thandle
!> Global gauss pulse data type
type(ic_gausspulse_type), intent(out) :: me
! ---------------------------------------------------------------------------
integer :: cent_handle
integer :: i
integer :: iError
! ---------------------------------------------------------------------------
!center
call aot_table_open( L = conf, &
& parent = thandle, &
& thandle = cent_handle, &
& key = 'center' )
if (aot_table_length(L=conf, thandle=cent_handle) == 3) then
do i=1,3
call aot_get_val( L = conf, &
& thandle = cent_handle, &
& pos = i, &
& val = me%center(i), &
& ErrCode = iError )
end do
else
write(*,*) 'ERROR while reading the center of a gauss pulse,'
write(*,*) 'should have 3 entries for each coordinate!'
STOP
end if
call aot_table_close(conf, cent_handle)
write(logUnit(1),*) ' * center =', me%center
!halfwidth
call aot_get_val( L = conf, &
& thandle = thandle, &
& key = 'halfwidth', &
& val = me%halfwidth, &
& ErrCode = iError )
write(logUnit(1),*) ' * halfwidth =', me%halfwidth
!amplitude
call aot_get_val( L = conf, &
& thandle = thandle, &
& key = 'amplitude', &
& val = me%amplitude, &
& ErrCode = iError )
write(logUnit(1),*) ' * amplitude =', me%amplitude
!backgroud
call aot_get_val( L = conf, &
& thandle = thandle, &
& key = 'background', &
& val = me%background, &
& ErrCode = iError )
write(logUnit(1),*) ' * background=', me%background
end subroutine load_ic_gausspulse