load_ic_gausspulse Subroutine

public subroutine load_ic_gausspulse(conf, thandle, me)

load gauss pulse variables to set initial condition

Arguments

Type IntentOptional 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


Source Code

  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