program main
    !! This is our program
    use mod_ppm, only: adv1d_by_ppm, fp
    implicit none
    ! CFL = u*dt/dx < 1
    real(fp), parameter :: dt = 1.0
    real(fp), parameter :: dx = 5.0
    real(fp), parameter ::  v = 1.0

    real(fp), parameter ::  x = 80.
    real(fp), parameter ::  t = (x/v)*2.0
    integer, parameter  :: nx = int(x/dx)+2

    real(fp), dimension(nx) :: u, c, dc, ds
    integer :: i
    integer :: nt

    c = 0.
    u = v
    ds = dx
    nt = int(t/dt)    

    do i = 0, nt
        c(1) = 8.
        write(*, "(100F6.2)") i*dt, c
        call adv1d_by_ppm(dt, u, c, dc, ds=ds)
    end do

end program main
