append_stFunSingle_ToLinkList Subroutine

private subroutine append_stFunSingle_ToLinkList(me, st_fun, new)

This routine appends new space time function to linked list of tem_st_fun_linkedList

Arguments

Type IntentOptional Attributes Name
type(tem_st_fun_linkedList_type), intent(inout) :: me

Linked list to append the spacetime function to.

type(tem_spacetime_fun_type), intent(in) :: st_fun

Spacetime fun information to add to the list.

type(tem_st_fun_listElem_type), intent(out), optional, pointer :: new

Called by

proc~~append_stfunsingle_tolinklist~~CalledByGraph proc~append_stfunsingle_tolinklist append_stFunSingle_ToLinkList interface~append~46 append interface~append~46->proc~append_stfunsingle_tolinklist

Contents


Source Code

  subroutine append_stFunSingle_ToLinkList(me, st_fun, new)
    ! -------------------------------------------------------------------- !
    !> Linked list to append the spacetime function to.
    type(tem_st_fun_linkedList_type), intent(inout) :: me

    !> Spacetime fun information to add to the list.
    type(tem_spacetime_fun_type), intent(in) :: st_fun
    type(tem_st_fun_listElem_type), pointer, optional, intent(out) :: new
    ! -------------------------------------------------------------------- !
    type(tem_st_fun_listElem_type), pointer :: current
    type(tem_st_fun_listElem_type), pointer :: lnew
    ! -------------------------------------------------------------------- !

    allocate(lnew)
    lnew%nVals = 1
    allocate(lnew%val(lnew%nVals))
    lnew%val = st_fun
    lnew%next => null()

    ! Look for the last element in linked list
    if (associated(me%head)) then
      current => me%head
      do
       if (.not. associated(current%next)) EXIT
         current => current%next
      end do
      current%next => lnew
    else
      allocate(me%head)
      me%head => lnew
    end if

    if (present(new)) new => lnew

  end subroutine append_stFunSingle_ToLinkList